2013-02-12 60 views

回答

0

传输属性定义和数据本身的一种便携方式是使用JSON序列化程序。

可以使用JSON.Net

Deserialize json object into dynamic object using Json.net

+1

对于WCF这可能是最糟糕的想法 - >另一方面DTO合同dll很可能是最好的模式定义在中间 – user1416420 2013-02-12 07:25:33

+0

@ user1416420:当然,我会使用双方预先理解的合同。但是,我对这个问题的解释是如何通过线路和数据传输模式。 JSON做得很好。当然,Web服务也可以使用XML发布其模式。在不知道请求背后的要求的情况下,很难确切地说出“正确”的方式。 – 2013-02-12 17:39:02

1

有道做到这将是要么暴露,为客户一个schema definition for your service消耗&生成强类型从类定义反序列化到一个dynamic对象或者为您的DTO合约定义(类/接口定义)提供一个DLL给客户端。

如果选择没有这些方法(没有架构&与接口无DLL),但仍 要生成一个类定义的,你可以在方式不当产生的.cs类定义,从的一个样本数据服务(几次呼叫服务并拦截响应或使用一些http client)。但是,这种方法并不能保证你会得到一个准确的或完整的一代。基本上,你可以从:

XML->XSD->C# CS类文件(甚至XML to C# cs file directly)或JSON->C# class file

和反序列化对象的动态尤其是当你没有自己在服务器&客户端代码几乎是最糟糕的事情你可以做。这种方式您没有将您的类定义转移到客户端。对动态对象的反序列化实际上根本不是序列化,它给了你一个带有语法糖的字符串字典,以便在运行时以属性的形式访问它们,而不需要编译时支持,这可以等同于灾难。总之不要这样做,除非你拥有所有的代码(不是说这是一个好主意,然后也许你可以通过某种方式获得)