我正在尝试使用Assembly
课程从[DataMember]'s
获取[ServiceContract]
。问题是,我的方法返回一个空集合......
这是我的代码:
Assembly assembly = Assembly.LoadFrom(dllPath);
Type c = assembly.GetType(fullName);
var dataMembers = c.GetFields().Where(f => f.GetCustomAttributes<DataContractFormatAttribute>().Any());
这是我的服务类:
[ServiceContract]
public class MyService
{
[DataMember]
public string Test;
[DataMember]
public Int64 ComeAndGetMe;
public bool AmIUseless;
[OperationContract]
public void DoSomething()
{
}
}
我想获得Test
和ComeAndGetMe
。
答案 0 :(得分:4)
没有字段标记为[DataContractFormat]
,因此查找<DataContractFormatAttribute>
将找不到任何内容。尝试查找指定DataMemberAttribute
的字段。
小点,但我个人认为你应该制作那些属性,而不是字段(显然使用GetProperties()
):
[DataMember]
public string Test {get;set;}
[DataMember]
public long ComeAndGetMe {get;set;}
// etc