3

アセンブリ (DLL) の外部でプロパティを "ReadOnly" に設定して、DLL を使用しているユーザーがアセンブリ内からそのプロパティを読み込むことができるようにするにはどうすればよいですか?

たとえば、Transaction オブジェクトで何かが発生したときに、Document オブジェクト (Transaction クラスの子クラス) にプロパティを設定する必要があるTransactionオブジェクトある場合DLLを使用して開発するだけです。そのプロパティを読み取ることはできますが、変更することはできません (DLL 自体からのみ変更する必要があります)。

4

4 に答える 4

7

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
于 2008-12-18T17:21:35.420 に答える
6

C# を使用している場合は、 と で異なるアクセス修飾子を使用できます。たとえば、次のようにするgetと、目的が達成されるはずです。set

public int MyProp { get; internal set; }

VB.NET にもこの機能があります: http://weblogs.asp.net/pwilson/archive/2003/10/28/34333.aspx

于 2008-12-18T17:21:00.787 に答える
3

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
于 2008-12-18T17:23:18.940 に答える
1

何語?VBではセッターをフレンドとしてマークし、C#では内部を使用します。

于 2008-12-18T17:21:22.940 に答える