REST 式的 web service 调用要比基于 SOAP 的调用更具优势,因为它无需工具的支持。这使得一些语言如 Ruby 和 Python 可以很轻松地对其进行调用。不幸的是,C#却做不到这一点,因为缺少必要的支持。
造成这种差别的原因在于动态类型。像 Ruby 和 Python 这样的语言可以直接将 JSON 和基于 XML 的结果转化为对象模型。接下来每种语言都可以使用其标准的方法和属性语法来访问该对象了。对于像 C#这样的语言来说,如果事先不知道对象是什么样子的话是无法进行这种映射的。因此,我们不得不编写必要的类和解析逻辑,而这个过程实在乏味且容易出错。
借助 C# 4,这一切都烟消云散了。通过将其与 Nikhil Kothari 的动态 Rest 项目进行整合,C#和 VB 开发者可以获得动态语言开发者所拥有的那种干净的语法。因为这还是基于早期预览版,所以还有一些限制。
注意到在 CTP 中还不支持动态类型索引,这违背了正常的数组语法。因此在其上使用了 Item()。然而,我被告知在随后的构建中已经加入了对动态类型索引的支持。
在随后的帖子中,Nikhil 介绍了使用 C# 4 调用 Amazon 和 Flickr 服务。
查看英文原文: Dynamic C# in Action
评论