Mvc3TestSvcRef来自用于Intranet应用程序的ASP.NET MVC 3模板.
Mvc4TestSvcRef来自用于Intranet应用程序的ASP.NET MVC 4模板.
我正在尝试添加一个服务引用.
在Mvc3TestSvcRef中,我右键单击项目(或参考文件夹),然后选择添加服务引用.我指向URL,点击Go.当引用被解析时,我输入命名空间,然后单击确定.如预期的那样,我看到添加到配置中的部分,绑定和客户端标签已完成.
我可以导入:“使用Mvc3TestSvcRef.MySvcRef;”
并编写代码如下:
using (var cl = new MyServiceClient()) { cl.DoStuff(); }
在Mvc4TestSvcRef中,我遵循相同的步骤,但是没有将system.servicemodel添加到config中.另外导入:“使用Mvc4TestSvcRef.MySvcRef;”无法解决
我已经从Visual Studio 2010和Visual Studio 2012中尝试过MVC 4.
解决方法
//------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool. // Runtime Version:4.0.30319.17929 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // </auto-generated> //------------------------------------------------------------------------------
我从工程和修改命名空间的项目中复制了reference.cs,然后将该工作项目的部分添加到MVC 4项目中,并且仍然存在问题.
我试图建立,我有几个警告和错误.无法为服务引用“MySvcRef”生成代码.请查看其他错误和警告信息以获取详细信息.
这导致我这篇文章:Service Reference Error: Failed to generate code for the service reference
因此,我从“高级”部分中取消选中所有引用程序集中的“重用”类型.
这似乎已经产生了很好的服务参考.虽然我应该指出,如果你有一些例如System,例如System.TimeSpan中的东西,它被用作一个DataContracts中的DataMember,那么引用现在在引用命名空间中将具有TimeSpan,而不是它的起源.所以,客户端会看到任何System.Timespan属性为ReferenceNameSpace.Timespan,这可能会抛出比较等等.这里更好的答案是从引用中包含特定的程序集,不要检查System.Web.Http的框,正如下面的注释中所指出的