【发布时间】:2010-03-04 15:58:52
【问题描述】:
我正在阅读有关属性的信息,并了解可以使用您的代码将它们应用于不同的目标实体 - (请参阅Attribute Targets)。
所以,查看我项目中的 AssemblyInfo.cs 文件,我可以看到以下内容:
[assembly: AssemblyTitle("AttributesDemo")]
[assembly: AssemblyDescription("")]
这对我来说很有意义。目标是程序集的属性。
在我的代码中,我可以在类上添加一个属性,如下所示:
[MyAttribute]
class MySerialzableClass
{
MyAttribute 是:
[AttributeUsage (AttributeTargets.All)]
public class MyAttribute : System.Attribute
{
}
所以,我开始考虑第一个代码块中的 assembly: 语句。并尝试了这个,只是为了实验:
[class: MyAttribute]
class MySerialzableClass
{
这会给编译器警告:
'class' 不是可识别的属性 地点。此块中的所有属性 将被忽略。
所以我的问题是 - 为什么必须在某些属性上指定属性目标,而不要求或允许其他属性?此外,您必须为哪些执行此操作?
【问题讨论】:
标签: c# attributes