ReadOnly против собственности в сборке Вопрос / Загадка - PullRequest
3 голосов
/ 18 декабря 2008

Как сделать свойство "ReadOnly" вне сборки (DLL) для людей, использующих DLL, но при этом иметь возможность заполнять это свойство из сборки для их чтения?

Например, если у меня есть объект Transaction , которому необходимо заполнить свойство в объекте Document (который является дочерним классом класса Transaction ) когда что-то происходит в объекте Transaction , но я просто хочу, чтобы разработчик использовал мою DLL, чтобы иметь возможность только читать это свойство и не изменять его (его следует изменять только из самой DLL).

Ответы [ 4 ]

7 голосов
/ 18 декабря 2008

C #

public object MyProp {
   get { return val; }
   internal set { val = value; }
}

VB

Public Property MyProp As Object
   Get
      Return StoredVal
   End Get
   Friend Set(ByVal value As Object) 
      StoredVal = value
   End Set
End Property
6 голосов
/ 18 декабря 2008

Если вы используете C #, у вас могут быть разные модификаторы доступа на get и set, например. следующее должно достичь того, что вы хотите:

public int MyProp { get; internal set; }

VB.NET также имеет эту возможность: http://weblogs.asp.net/pwilson/archive/2003/10/28/34333.aspx

3 голосов
/ 18 декабря 2008

C #

public bool MyProp {get; internal set;} //Uses "Automatic Property" sytax

VB

private _MyProp as Boolean
Public Property MyProp as Boolean
   Get
      Return True
   End Get
   Friend Set(ByVal value as Boolean)
      _MyProp = value
   End Set
End Property
1 голос
/ 18 декабря 2008

На каком языке? В VB вы отмечаете сеттер как Друг, в C # вы используете внутренний.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...