首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替代SvcUtil.exe?

替代SvcUtil.exe?
EN

Stack Overflow用户
提问于 2010-01-12 00:12:13
回答 2查看 11.3K关注 0票数 17

我一整天都在与SvcUtil搏斗,试图让它为一些(主要是组管理服务)生成有用的代码(主要是组管理服务,但我们也需要它来工作)。您可以在这里找到IMS服务WSDL的http://www.imsglobal.org/es/index.html

我得出的结论是,SvcUtil是微软的一个无用的后遗症,它不支持WSDL和XSD标准,甚至是半途而废。它无法生成符合IMS同时使用和运行的标准WSDL契约的WCF服务。尽管从下面的WSDL (v1p0.wsdl)生成可编译代码,但还是要观察从WCF服务生成的WSDL (wsdl、?wsdl=wsdl0、?xsd=xsd0等)。显示不存在任何操作,代码中生成的类型中只有一小部分实际上被WCF识别。如果我们处理生成的代码,我们可以得到类似的函数(我们正在使用SoapUI进行测试),但是它不再符合契约,因此对真正需要调用这些服务的人来说是无用的。

有什么替代SvcUtil的方法吗?(请不要建议在Visual中构建的“添加服务引用”工具,它和使用与SvcUtil完全相同的代码一样无用。)我们需要某种程度的控制来控制代码是如何从WSDL契约中生成的,每个部分都在哪些文件中,每个代码元素最后在哪个名称空间中,等等。IMS契约导入了两种特定于WSDL中定义的服务的XSD类型,以及所有IMS服务中常见的XSD类型。我们需要能够为这些类型生成不同的程序集,并在生成的代码中引用它们(类似于SvcUtil显然应该如何执行it...but --它似乎完全不像文档中所说的那样。)

到目前为止,我一直是WCF的超级粉丝。很明显,当您只使用.NET/WCF服务时,它显然可以工作,但是每当您试图在符合标准的跨平台环境中使用它时,一切都会变得一团糟。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-09 01:32:04

很抱歉,我没有充分的时间来回答这个问题,但是你的问题有一个答案。您可以实现一个名为IWsdlImportExtension的接口,它有两个您感兴趣的方法。它们是:

GenerateContract()和GenerateOperation()

如果您实现了这些方法,您实际上可以通过添加或删除SvcUtil等方法来控制CustomAttributes输出代码的方式。您需要编译包含接口的dll,然后将SvcUtil配置指向DLL和接口。

使用此方法,您可以将Xml文档添加到输出代理中,等等。这方面有一些有兴趣的文章。

票数 9
EN

Stack Overflow用户

发布于 2010-01-12 05:55:25

您看过Codeplex上的WCF代理生成器吗?基于谁是幕后主使(凯特格雷戈里和米歇尔莱鲁克斯布斯塔曼特),有希望它可能是有用的-加上你得到了来源,这样你可以适应/调整你的心的内容!

(我还没来得及认真看一看--但

此外,请查看此Pedram Rezaei在这里发表博文,演示如何使用您自己的自定义代码影响Visual“添加服务引用”步骤。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2045867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档