gpt4 book ai didi

c# - 使用 System.Reflection 从 DLL 程序集中获取 DataMembers

转载 作者:行者123 更新时间:2023-11-30 20:57:49 25 4
gpt4 key购买 nike

我正在尝试使用 Assembly 类从我的 [ServiceContract] 中获取 [DataMember] 的。问题是,我的方法返回一个空集合...

这是我的代码:

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

最佳答案

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

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

[DataMember]
public string Test {get;set;}
[DataMember]
public long ComeAndGetMe {get;set;}
// etc

关于c# - 使用 System.Reflection 从 DLL 程序集中获取 DataMembers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16544126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com