3

鉴于我有一个完全动态的对象模型,也就是说,我没有在代码中的任何地方定义具体类,但我仍然希望能够为它们创建 WCF DataContracts,以便我可以在操作中使用它们。我怎样才能做到这一点?

我的具体类“实体”实现了 ICustomTypeDescriptor,它用于向外界呈现各种属性,但我对 WCF 的实验表明 WCF 并不关心 ICustomTypeDescriptor。这是正确的还是我错过了什么?

这可能吗?不可能,创建 DataContract 的唯一方法是实际拥有一个具体的硬编码类,可以吗?

4

3 回答 3

0

您可以使用无类型的服务和消息合同 IIRC http://geekswithblogs.net/claeyskurt/archive/2008/09/24/125430.aspx

于 2010-02-11T08:23:49.477 回答
0

你可以试试 System.Reflection.Emit。

它相当棘手,但本质上您只需构建一个自定义运行时类型,并带有修饰的数据协定属性。使用 PropertyChanged 通知创建封装属性时会变得很棘手,但在您的服务层中,您可以使用更容易的自动属性。

这个过时但仍然非常相关的链接应该让您朝着正确的方向前进。 http://drdobbs.com/184416570

于 2012-01-10T08:57:26.343 回答
0

事情发展了 :-) 感谢 Alex D James 的优秀博客系列,它很容易实现。

于 2014-02-05T07:37:34.447 回答