【问题标题】:DataMember vs DataMemberAttribute数据成员与数据成员属性
【发布时间】:2011-08-27 18:15:28
【问题描述】:
[DataContract]
public class SearchResults
{
    [DataMember]
    public List<SearchDetail> PList { get; set; }
    [DataMemberAttribute]
    public int Count { get; set; }
}

DataMemberDataMemberAttribute 的元数据相同。

“DataMember”只是另一个的别名吗?我们应该使用哪一个? (如果可能,请提供链接)

【问题讨论】:

    标签: c# wcf serialization datamember


    【解决方案1】:

    按照惯例,所有属性名称都以 Attribute 结尾。但是,一些面向运行时的语言(例如 Visual Basic 和 C#)不需要您指定属性的全名。例如,如果要初始化 System.ObsoleteAttribute,只需将其引用为 Obsolete。

    来源 - https://docs.microsoft.com/en-us/dotnet/standard/attributes/applying-attributes

    它是相同的,并且适用于 .Net Framework 中的所有 attribute。前任。可序列化

    【讨论】:

    • 约定是给类命名时附加“属性”,但在使用中可以省略它。
    • @rkaregaran:您能否提供您的评论声明的官方链接。我试过谷歌,但它没有帮助(或者可能是晚了:P)。谢谢!
    【解决方案2】:

    是的,属性名称上的“属性”是可选的。使用任何让你快乐的东西。

    Attributes on MSDN (See the Note 2/3rd's down)

    注意

    按照惯例,所有属性名称都以“属性”一词结尾,以将它们与 .NET Framework 中的其他项区分开来。但是,在代码中使用属性时,不需要指定属性后缀。例如,[DllImport] 等价于 [DllImportAttribute],但 DllImportAttribute 是 .NET Framework 中属性的实际名称。

    【讨论】:

      【解决方案3】:

      您可以在 .NET 中使用以 -Attribute 结尾的任何属性,即使用属性类型的全名。为了简单起见,允许省略结尾。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-04
        相关资源
        最近更新 更多