




























Attribute类
除了.NET内置提供的一些特性外,我们当然也可以自定义自己的Attribute。需要知道的中,所有自定义的Attribute都必须派生自类Attribute。在开发自定义的Attribute的时候,还有一点需要注意的是特性可以施加到不同的元素中,如方法,属性,类,参数等。有时候我们可能希望自定义的特性只允许施加到类中,这时还可以使用AttributeUsage限定特性的使用范围。
以下给出一个使用示例
using System;
namespace AttTargsCS
{ // 该Attribute只对类有效.
[AttributeUsage(AttributeTargets.Class)]
public class ClassTargetAttribute : Attribute
{
} // 该Attribute只对方法有效.
[AttributeUsage(AttributeTargets.Method)]
public class MethodTargetAttribute : Attribute
{
} // 该Attribute只对构造器有效。
[AttributeUsage(AttributeTargets.Constructor)]
public class ConstructorTargetAttribute : Attribute
{
} // 该Attribute只对字段有效.
[AttributeUsage(AttributeTargets.Field)]
public class FieldTargetAttribute : Attribute
{
} // 该Attribute对类或者方法有效(组合).
[AttributeUsage(AttributeTargets.Class|AttributeTargets.Method)]
public class ClassMethodTargetAttribute : Attribute
{
} // 该Attribute对所有的元素有效.
[AttributeUsage(AttributeTargets.All)]
public class AllTargetsAttribute : Attribute
{
} //上面定义的Attribute施加到程序元素上的用法
[ClassTarget] //施加到类
[ClassMethodTarget]//施加到类
[AllTargets] //施加到类
public class TestClassAttribute
{
[ConstructorTarget] //施加到构造器
[AllTargets] //施加到构造器
TestClassAttribute()
{
}
[MethodTarget]
//施加到方法此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。