我正在使用WCF服务
我有数据合同:
[DataContract]
[KnownType(typeof(CustomBranches))]
public class CustomBranches
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string branch_name { get; set; }
[DataMember]
public string address_line_1 { get; set; }
[DataMember]
public string city_name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
是否有可能在此类CustomBranches中找到所有DataMembers的名称
比如"ID","分支名称"等
谢谢
car*_*ira 14
你需要做什么:
[KnownType(typeof(CustomBranches))]在CustomBranches课堂上添加.一个班级总是知道自己.[DataMember]属性的属性(nillls的代码返回所有属性)这是完成所有这些操作的代码示例.
public class StackOverflow_8152252
{
public static void Test()
{
BindingFlags instancePublicAndNot = BindingFlags.Instance |
BindingFlags.Public |
BindingFlags.NonPublic;
var memberNames = typeof(CustomBranches)
.GetProperties(instancePublicAndNot)
.OfType<MemberInfo>()
.Union(typeof(CustomBranches).GetFields(instancePublicAndNot))
.Where(x => Attribute.IsDefined(x, typeof(DataMemberAttribute)))
.Select(x => x.Name);
Console.WriteLine("All data member names");
foreach (var memberName in memberNames)
{
Console.WriteLine(" {0}", memberName);
}
}
[DataContract]
public class CustomBranches
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string branch_name { get; set; }
[DataMember]
public string address_line_1 { get; set; }
[DataMember]
public string city_name { get; set; }
public int NonDataMember { get; set; }
[DataMember]
public string FieldDataMember;
[DataMember]
internal string NonPublicMember { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
由于它是一个数据契约,您很可能应该拥有所有可用的属性,但如果没有,以下应该列出您类型的所有属性:
Type T =(typeof(T));
var properties = T.GetProperties(BindingFlags.Public|BindingFlags.Instance);
Run Code Online (Sandbox Code Playgroud)
将 T 替换为类型,然后就可以开始了。根据您的需要,您可能需要不同的BindingFlags。
| 归档时间: |
|
| 查看次数: |
5803 次 |
| 最近记录: |