从代码动态创建WCF DataContracts

时间:2010-02-11 08:21:10

标签: wcf dynamic datacontract icustomtypedescriptor

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

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

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以尝试System.Reflection.Emit。

它非常棘手,但基本上你只需构建一个自定义的运行时类型,其中包含装饰数据契约属性。使用PropertyChanged通知创建封装属性时会很棘手,但在服务层中,您可以轻松使用更容易的自动属性。

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

答案 2 :(得分:0)

事情发展:-)感谢Alex D James的excellent blog series很容易实现这一点。