在域实体中使用DescriptionAttribute
本文关键字:DescriptionAttribute 实体 | 更新日期: 2023-09-27 18:01:09
我目前正在开发一个系统,该系统需要在运行时公开一些元数据/文档。我知道有一些方法可以使用XML注释,并通过自主开发的反射扩展方法将数据带回应用程序。
我觉得使用System.ComponentModel命名空间(但位于系统程序集中(中的description属性可能更容易。通过这种方式,我和其他开发人员将能够使用规则反射来获得字段的描述。我更愿意使用这个,而不是使用自定义属性。这种方法的缺点是什么?
示例:
public Customer
{
public int Id { get; set; }
[Description("The common friendly name used for the customer.")]
public string Name { get; set; }
[Description("The name used for this customer in the existing Oracle ERP system.")]
public string ErpName { get; set; }
}
我正在做完全相同的事情(使用ERP软件!(,没有遇到任何缺点。根据您的体系结构,您可能会认为在您的情况下存在一个缺点,那就是许多文档工具直接或间接地基于XML注释。他们可能无法获取描述属性。但在我们的体系结构中,Description属性代码实际上并不是文档的主/源。我们有一个元数据数据库,用于定义和描述每个属性。我们可以从同一个源生成XML注释和描述属性。实际上,在我们的案例中,我们根本不生成XML注释,而是直接生成通常由XML注释直接生成的XML文件。这是我们使用的文档工具所使用的文件。如果您想使用依赖于XML注释输出的XML文件的文档工具,或者它不能直接接受Describeton属性,那么您可能可以编写一个简单的实用程序来将描述属性提取到类似的XML文件中。