LinqPad 如何支持 WCF 数据服务?
LinqPad 支持 WCF 数据服务。如果您分配 URL,例如 http://services.odata.org/Northwind/Northwind .svc/。它将列出所有可用的数据对象,您可以查询它们。我猜想LinqPad在运行时通过reflection.Emit生成所有可用的数据类。
我想知道谁可以告诉我如何做到这一点。或者也许以前有人做过。
如有任何反馈,我们将不胜感激。
英
LinqPad supports WCF Data Services. If you assign an URL, such as http://services.odata.org/Northwind/Northwind.svc/. It will list all available data objects and you can query them. I guess LinqPad generates all available data classes at run time by reflection.Emit.
I am wondering who can show me to how to do so. Or maybe someone has done it before.
Any feedback are appreciated.
Ying
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是我使用 Reflector 检查代码后得到的结果:
LinqPad 使用内置的 EntityClassGenerator 类生成代码,然后使用 CSharpCodeProvider。不使用反射发射。 (不过,在 LINQ-2-SQL 的情况下,它确实使用反射发射来生成代码。)
至于 Vitek 建议的 ODataExplorer 工具,它似乎根本不生成代码。它不需要这样做,因为它和服务之间的所有交互都是通过 REST API 完成的,而不是 LINQ。因此不需要强类型数据上下文。
This is what I've got after examining the code with Reflector:
LinqPad uses the built-in EntityClassGenerator class to generate code and then compile it with CSharpCodeProvider. No reflection emit is used. (It does use reflection emit to generate code in the case of LINQ-2-SQL though.)
As to the ODataExplorer tool suggested by Vitek, it doesn't seem to generate code at all. It doesn't need to, because all interactions between it and the service are done through the REST API, not LINQ. So no strongly typed data context is needed.
我很确定 LinqPad 按照您的建议生成了类,但我还没有看到源代码。但如果您对类似内容的源代码感兴趣,请查看 OData 资源管理器:http://blogs.msdn.com/b/phaniraj/archive/2010/03/17/announcing-the-odata-explorer.aspx
I'm pretty sure that LinqPad generates the classes as you suggested, but I haven't seen to source code. But if you're interested in source code for something similar, take a look at OData explorer: http://blogs.msdn.com/b/phaniraj/archive/2010/03/17/announcing-the-odata-explorer.aspx