2

我正在尝试使用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()
    {
    }
}

我想得到TestComeAndGetMe

4

1 回答 1

4

没有字段被标记[DataContractFormat],所以寻找<DataContractFormatAttribute>不会找到任何东西。尝试查找DataMemberAttribute指定的字段。

次要的一点,但我个人认为你应该制作这些属性,而不是字段GetProperties()显然,使用):

[DataMember]
public string Test {get;set;}
[DataMember]
public long ComeAndGetMe {get;set;}
// etc
于 2013-05-14T13:13:37.330 回答