在C#中获取[DataMember]的名称

kar*_*hik 5 .net c# windows-phone-7

我有如下的模型类,

public class Station
{
    [DataMember (Name="stationName")]
    public string StationName;
    [DataMember (Name="stationId")]
    public string StationId;
}
Run Code Online (Sandbox Code Playgroud)

我想获取DataMember带有属性名称的名称,即如果我有属性名称"StationName",我该如何获得stationName

Ehs*_*san 7

对你的班级略有修改

[DataContract]
public class Station
{
    [DataMember(Name = "stationName")]
    public string StationName { get; set; }
    [DataMember(Name = "stationId")]
    public string StationId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后这就是你如何得到它

 var properties = typeof(Station).GetProperties();
 foreach (var property in properties)
 {
    var attributes = property.GetCustomAttributes(typeof(DataMemberAttribute), true);
     foreach (DataMemberAttribute dma in attributes)
     {
         Console.WriteLine(dma.Name);
      }                
  }
Run Code Online (Sandbox Code Playgroud)