我有一个使用Linq到Sql的Wcf项目 - 序列化模式=单向的Wpf项目和MVC 4项目。
我有一个类库,它正在为Linq Classes保存dbml。
另一个包含Wpf应用程序的ViewModel的类库
我可以向包含ViewModel的类库添加服务引用,并像普通
一样访问Wcf方法client.DoStuff()
以下是ViewModel C的参考配置; ass库
生成正确的Reference.Cs
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IMyWebService/DoStuff", ReplyAction="http://tempuri.org/IMyWebService/DoStuffResponse")]
MyDataProject.Data.DatabaseModels.DoStuff[] DoStuff();
当我为Mvc项目创建Web引用时:
(与上面相同的配置,但具有不同的ReferenceName)
执行相同的
时client.DoStuff()
我收到错误 - 方法“DoStuff”有1个参数但是用0参数调用。
然后我查看Reference.cs文件
方法如下:
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IMyWebService/DoStuffResults", ReplyAction="http://tempuri.org/IMyWebService/DoStuffResultsResponse")]
[System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
MyWebProject.MyWebSiteReference.DoStuffResultsResponse DoStuffResults(MyWebProject.MyWebSiteReference.DoStuffResultsRequest request);
取消选中引用程序集中的重用类型允许我正常访问该方法,但后来我得到类型不匹配。
他们是否因为在Mvc中使用Wcf而失踪?
编辑 - 我更新了我用于生成正确.cs
的Wpf客户端的参考然后我按照回复试试了
生成此
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IMyWebService/DoStuff", ReplyAction="http://tempuri.org/IMyWebService/DoStuffResponse")]
MyWebProject.MyWebSiteReference.DoStuffResponse DoStuff(MyWebProject.MyWebSiteReference.DoStuffRequest request)