在我的C#DLL中,我希望属性对外部应用程序可读,但不可编辑。有点像readonly
和internal
- readonly
到外部应用程序和internal
到DLL的组合。可编辑内部,但仍然可以在外面看?
但我与readonly
的问题是,你不能编辑它们,只要你愿意。
我和internal
的问题在于它完全隐藏了外部程序的属性。
难道有可能解决这个困境吗?坦诚地说,我对任何事情都是开放的。
在我的C#DLL中,我希望属性对外部应用程序可读,但不可编辑。有点像readonly
和internal
- readonly
到外部应用程序和internal
到DLL的组合。可编辑内部,但仍然可以在外面看?
但我与readonly
的问题是,你不能编辑它们,只要你愿意。
我和internal
的问题在于它完全隐藏了外部程序的属性。
难道有可能解决这个困境吗?坦诚地说,我对任何事情都是开放的。
如果您使用的属性,你可以使用不同的访问修饰符为get
和set
方法:
public T MyProperty { get; internal set; }
您也可以使用其他访问修饰符set
,如private
或protected
,取决于你的用例。
如果你有不同的设置(如内场),你也可以暴露于该领域的公共的getter:
public T MyProperty { get { return myInternalField; } }
我解决{get;内部设置;} - 感谢您向我介绍这一点 – Seist 2013-05-12 20:04:56
你可以用readonly
版本包装你的internal
变量吗?然后外部客户端只能看到readonly
版本。
(我假设这些变量属性?)
如果您正在使用的属性尝试做如下:
public string Example {get; protected set; }
或
public string Example {get; private set; }
第一个将让物业由子类设置,而第二类不会。这将允许您在类中设置属性,但dll的用户将能够以只读方式访问该属性。您还可以添加内部方法,以便其他类可以修改DLL中的该状态,但引用它的任何人都将无法修改该状态。
我在{get;内部设置;} - 感谢您向我介绍这 – Seist 2013-05-12 13:47:12
的'accesibility'标签是为帮助残疾人。 (标签已移除) – 2013-05-12 15:22:33