这个问题跟随别人的问题,因为提问者从未接受或说过他的问题的解决方案,如果他找到了。
What's the most portable way to make a Silverlight & Regular .NET REST client
如果您熟悉.NET中的WebChannelFactory,它提供了一种创建客户端以访问WCF Web Http(REST)服务的简洁方法。 Silverlight 4中没有这样的类,因此创建一个类似于它的类可能是值得的。
如何开始创建类,创建一个实现服务合同的客户端(TChannel)?我不知道微软是如何做到这一点的,但看起来它们在运行时以某种方式创建了一个新的Type来实现该接口。你会在Silverilght这样做吗?也许通过查看System.Reflection.Emit和TypeBuilder.AddInterfaceImplementation?
我遇到的一个更具体的System.Reflection.Emit问题是,如果你想使用现有的编译代码,使用MethodBuilder为你的TypeBuilder创建方法的最简单方法是什么?看起来您可以使用MethodBuilder.CreateMethodBody,但是,在Silverlight 4中,这不存在。
答案 0 :(得分:2)
首先,WebChannelFactory
不是构建REST客户端的简洁方法 - 这是完全无REST的方法,因为它要求您共享服务和客户端之间的所有合同。存在WebChannelFactory
以提供与标准WCF服务客户端的兼容性,并以某种方式(错误地)简化调用.NET编写的REST服务。这也是MS如何做到的答案 - 没有类型的运行时创建。类型是在设计时定义的。
答案 1 :(得分:0)
这是一篇很好的文章。我决定创建一个类,简化调用REST WCF服务并更加贴近我的需求。也许其他人会发现它很有用。