gpt4 book ai didi

.net - 运行时将 DataContract 和 DataMember 添加到使用 .Net 反射创建的动态类

转载 作者:行者123 更新时间:2023-12-01 01:53:30 26 4
gpt4 key购买 nike

我使用过 .Net 反射。发出以创建动态类及其字段。现在,当我在启用 Silverlight 的 WCF 服务中使用这个动态类对象的通用列表时,它在引用端给了我一个错误。服务引用不知道这种动态创建的类型。这是我能想到的。我不确定这个?有没有人知道如何使用 DataContract 装饰这个动态创建的类及其使用 DataMember 的字段?

最佳答案

即使您添加 DataContractDataMember在运行时使用 Reflection.Emit 创建的类的属性,合约 不能 包含在服务元数据中并被客户端发现,只需添加这些属性,因为创建服务元数据步骤是通过检查契约(Contract)参数和返回值并在服务有机会运行之前创建服务描述来完成的。

一种简单的选择是在您的服务操作中使用弱类型参数,例如 XElementMessage直接上课

IE:

void SomeOperation(XElement parameter);
void SomeOtherOperation(Message message);

一个不太简单的选择是使用自定义元数据行为并通过实现 IWsdlExportExtension 为动态生成的类导出元数据。导出自定义元数据。假设这些类是在对服务的任何调用之前生成的,并且在每次应用程序运行时生成相同的类结构(因此可能不是一个合适的选择)

关于.net - 运行时将 DataContract 和 DataMember 添加到使用 .Net 反射创建的动态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4902876/

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