基本上,我有一个 silverlight 2 客户端(因此我使用SLSvcutil)需要访问WCF服务。
有人知道如何阻止SLSvcutil.exe使用FaultContractAttributes装饰OperationContracts吗?
我正在针对WCF服务运行SLSvcUtil,该服务的操作都是由Faultcontracts修饰的。
不幸的是,我无法真正提供任何代码,只是想知道是否有人有一个模糊的想法。我似乎无法让 excludeType 开关工作,这是我对如何实现这一点的第一次猜测。
由于
答案 0 :(得分:0)
如果您确实要忽略操作的强类型故障数据协定,则可以从服务的wsdl中删除该定义。但是从生成的类中删除它会更容易。 (找到所有错误合同属性并替换为“”)
答案 1 :(得分:0)
编辑 - 我使用SL 3运行时... 我不得不删除所有对System.ServiceModel和System.Net的旧引用,并从这个位置添加它们(我运行x64窗口)
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v3.0
一旦我这样做了 - 它奏效了!很抱歉,如果您仍然在瞄准2.0运行时,但我想我会发布此更新,以防将来有人发现此页面...
这可能只是“我的问题”,因为我使用的是x64 windows ...以下是程序集引用的新proj文件:
<Reference Include="System.Net, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v3.0\System.Net.dll</HintPath>
</Reference> <Reference Include="System.ServiceModel, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v3.0\System.ServiceModel.dll</HintPath>
</Reference>
===============下面的旧答案===============
我一直试图做同样的事情而没有运气,所以我会说“目前无法做到这一点”,这真的很烦人......
如果你查看reference.cs和发出的.cs,班级的顶部会显示你使用“添加服务参考”,你会得到:
// This code was auto-generated by Microsoft.Silverlight.ServiceReference, version 2.0.5.0
使用SlSvcUtil(v3.0工具顺便提一下),你得到:。
// This code was auto-generated by slsvcutil, version 3.0.40624.0
所以我认为你不能“回到端口”到v2.0。不幸的是 - 你也不能在3.0运行时使用SlSvcUtil! (我觉得这很荒谬 - 或者说我无法正常工作)
我正在瞄准3.0运行时并使用了SlSvcUtil并且“开箱即用”它告诉我
The type or namespace name 'FaultContractAttributeAttribute' does not exist
in the namespace 'System.ServiceModel' (are you missing an assembly reference?)
类已存在于System.ServiceModel 3.0。*中但Silverlight使用的是2.0。*它不存在...踢球者 - 尝试添加对3.0版本的引用,您会得到以下内容:
You can't add a reference to System.ServiceModel.dll as it was not built against the
Silverlight runtime. Silverlight projects will only work with Silverlight assemblies
所以,即使你是在v3.0上 - 你也是SOL - 就像我一样......
希望有人可以回复告诉我们如何做到这一点,但我不认为这是可能的...有人 - 证明我错了! :)
对不起男人......