是否可以在设计时创建对象而无需使用硬编码类定义,然后使用基元或甚至强类型数据类型填充属性?
这可能听起来令人困惑,因此我将尝试为您提供一个用例场景。
使用案例
您有一个XML
配置文件,可以保存用于连接SOA
应用程序中各种系统的配置值。在C#中,读取XML
文件,但是对于每个系统,配置属性都不同(例如:SQL可能有连接字符串,而SharePoint可能需要用户名+密码+域+ url,而smtp服务器则会需要用户名+密码+端口+网址)
所以不要按如下方式创建静态类
public class SharePointConfiguration
或public class SQLConfiguration
,然后每个类都有自定义属性(这很麻烦)
或
使用1990年的方法,ArrayList
或一些命名的集合
有没有更优选的方法来实现这一目标?利用新的语言功能,仍然可以提供设计时智能感知,这将使代码更容易维护,更不容易出错。
我想我正在寻找某种多用途的.net 4财产权持有人。 感谢
答案 0 :(得分:1)
如果要在运行时发出代码?
答案 1 :(得分:1)
使用PropertyBag的示例实现。
如果属性不存在,请立即创建...
答案 2 :(得分:1)
您想要的是基于架构的XML。这将为您提供IntelliSense,包括代码片段,同时提供灵活性。
答案 3 :(得分:0)
根据你的问题(并假设我正确阅读),这是不可能的。你可以得到的最接近的是使用'dynamic'类型并在运行时将值分配给属性 - 问题在于,动态没有Intellisense支持,甚至使用其他类型的解决方案,Intellisense也不会可用,因为属性只能在运行时附加。
我对你的要求感到困惑吗?