我看过以下代码:
[DefaultValue(100)]
[Description("Some descriptive field here")]
public int MyProperty{...} 上面的代码片段中的功能似乎足够清晰,我不知道如何使用它来做一些有用的事情。我甚至不确定该给它起什么名字!
谁知道我在哪里可以找到关于这些属性属性的更多信息/教程?我也会对这个功能可以做的任何新颖/有用的任务感兴趣。
发布于 2008-10-16 14:14:06
人们已经介绍了UI方面-属性还有其他用途...例如,它们在大多数序列化框架中被广泛使用。编译器对某些属性进行了特殊处理-例如,[PrincipalPermission(...)]向方法添加了声明性安全性,允许您(自动)检查用户是否具有适当的访问权限。
要添加您自己的特殊处理,可以使用PostSharp;有许多使用PostSharp做面向方面工作的很好的例子,比如日志记录-或者只是简化代码,比如使用automatic INotifyPropertyChanged implementation。
发布于 2008-10-16 14:11:29
上面的代码片段中的功能看起来足够清晰,
也许不是,因为很多人认为DefaultValue()设置了属性的值。实际上,它所做的一切都是为了告诉一些可视化设计器(例如visual Studio),代码将把默认值设置为什么。这样,如果属性窗口中的值被设置为其他值,它就会知道以粗体显示()。
发布于 2008-10-16 14:07:42
它们被称为属性,在msdn中有大量的信息,例如http://msdn.microsoft.com/en-us/library/z0w1kczw.aspx
一般来说,它们不会自己“做”任何事情,它们被一些其他代码使用,这些代码将使用您的类。XmlSerialization就是一个很好的例子: XmlSerializer (由微软作为框架的一部分提供)几乎可以是任何类(尽管对类有许多要求)-它使用反射来查看类中包含哪些数据。您可以使用属性(与XmlSerializer一起定义)来更改XmlSerializer序列化您的类的方式(例如,告诉它将数据保存为属性而不是元素)。
https://stackoverflow.com/questions/208703
复制相似问题