1

我目前正在开发一个需要在运行时公开其一些元数据/文档的系统。我知道有一些方法可以使用 XML 注释并通过自研的反射扩展方法将数据带回应用程序。

我觉得使用 System.ComponentModel 命名空间中的 description 属性可能更容易(但位于 System 程序集中)。这样我和其他开发人员就可以使用常规反射来获取字段的描述。我宁愿使用它而不是使用自定义属性。这种方法有什么缺点?

例子:

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; }
}
4

1 回答 1

1

我正在做同样的事情(同样使用 ERP 软件!)并且没有遇到任何缺点。根据您的体系结构,您可能会认为在您的情况下存在的一个缺点是许多文档工具直接或间接地基于 XML 注释。他们可能无法获取描述属性。但是在我们的架构中,描述属性代码实际上并不是文档的主/源代码。我们有一个定义和描述每个属性的元数据数据库。我们可以生成 XML 注释来自同一来源的描述属性。实际上,在我们的例子中,我们根本不生成 XML 注释,而是直接生成通常由 XML 注释直接生成的 XML 文件。这是我们使用的文档工具使用的文件。如果您想使用依赖于 xml 注释输出的 xml 文件的文档工具,如果它不能直接接受 Decribiton 属性,您可能会编写一个简单的实用程序来将描述属性提取到类似的 XML 文件中。

于 2013-02-26T20:18:30.553 回答