小编典典

如何在C#中创建自定义属性

c#

我已经尝试了很多次,但是仍然无法理解自定义属性的用法(我已经浏览了很多链接)。

谁能给我解释一个带有代码的自定义属性的非常基本的示例吗?


阅读 904

收藏
2020-05-19

共1个答案

小编典典

尽管创建自定义属性的代码非常简单,但是了解什么是属性非常重要:

属性是编译到程序中的元数据。属性本身不会为类,属性或模块添加任何功能,而只是添加数据。但是,使用反射,可以利用这些属性来创建功能。

因此,例如,让我们来看一下Microsoft
企业库中的验证应用程序块。如果查看代码示例,将会看到:

    /// <summary>
    /// blah blah code.
    /// </summary>
    [DataMember]
    [StringLengthValidator(8, RangeBoundaryType.Inclusive, 8, RangeBoundaryType.Inclusive, MessageTemplate = "\"{1}\" must always have \"{4}\" characters.")]
    public string Code { get; set; }

从上面的代码段中,您可能会猜到,只要更改了代码,就会始终根据Validator的规则进行验证(在示例中,至少包含8个字符,最多8个字符)。但是事实是,属性什么也没做。如前所述,它仅将元数据添加到属性。

但是,企业库提供了Validation.Validate一种可以查看您的对象的方法,对于每个属性,它都会检查内容是否违反该属性所通知的规则。

因此,这就是您应该考虑的属性-一种将数据添加到代码中的方式,以后可能会被其他方法/类/等使用。

2020-05-19