使用动态语言和DLR创建WCF服务

时间:2010-04-26 16:12:33

标签: wcf ironpython ironruby dynamic-language-runtime

我很好奇如何使用像IronPython或IronRuby这样的动态语言来创建创建基于WCF的服务。这些语言没有接口的概念。如何定义服务合同?我们是否需要依靠静态语言来完成这类任务?我特别喜欢Python,并且想知道这是否可以在这一点上完成。

2 个答案:

答案 0 :(得分:2)

IronPython在2.6中有一个新功能,可以使用Python类定义机制创建普通的.NET类。通过覆盖元类上的 clrtype 来启用新功能。然后,您可以使用一堆装饰器声明一个类,并且元类创建一个新的.NET类型。作为示例,我们有一组元类,可以在IronPython CodePlex网站上使用(或自定义)2.6.1 release

我没有特别尝试使用WCF,但是当你需要使用静态类型时它确实适用于其他情况。在某些情况下它不起作用 - 特别是如果框架需要使用Type.GetType(typeName)。

答案 1 :(得分:2)

我做了一些实验 - 看看我在blog上的经历。

好消息是WCF服务可以完全用IronPython编写。坏消息是这样的WCF服务在IIS中不起作用,因为你不能直接使用C#或VB编译的IronPython代码。