2013-05-08 52 views
2

我有我的WCF应用程序IService1.cs问题在MVC 4

[ServiceContract] 
    public interface IService1 
    { 
     [OperationContract] 
     string insertValues(empInfo objInfo); 
    } 

    [DataContract] 
    public class empInfo 
    { 
     string _organizationName = string.Empty; 
     string _organizationAddr = string.Empty; 
     int? _totalemp; 
    } 

而且在Service1.svc.cs类和接口,这样的消费WCF服务,我已经实现了该接口。

public class Service1 : IService1 
{ 

public string insertValues(empInfo objInfo) 
     { 
      ..... 
     } 
} 

然后我创建了一个空的mvc4客户端应用程序来使用此wcf服务。 我已经添加了ServiceReference,现在它作为ServiceReference1出现在服务参考文件夹中。然后我做了这个 1.创建了一个名为Defalut1controller的控制器。 2.在此控制器中,我尝试在ActionResult中添加以下行 ServiceReference1.Service1Client proxy = new ServiceReference1.Service1Client(); 。但无法获得ServiceReference1单词。

其(ServiceReference1)出现时更新我的​​服务这样的

从 - string insertValues(empInfo objInfo); - 要 - string insertValues(string objInfo);

,现在我已经建立这个WCF应用程序,并更新我的客户mvc4应用程序的服务引用。现在

ServiceReference1.Service1Client proxy = new ServiceReference1.Service1Client(); 

行已启用。

我已经尝试使用.net Web应用程序来使用相同的功能,我可以在没有任何问题的情况下做到这一点,但我错过了使用mvc4的帮助。在此先感谢..

回答

3

我得到了答案,感谢stackoverflow。

这是解决方案:

  1. 右键点击服务参考
  2. 选择配置服务引用
  3. 选择重用类型指定引用程序
  4. 只需选择除“Newtonsoft.json”一切

它也适用于我。

+0

工作就像一个魅力!非常感谢! – 2015-04-13 08:47:36

0

问题本身和您面临的问题对我来说有点不清楚,但您是否真的试图暴露empInfo数据合同上的任何公共属性?因为现在您只有3个私人字段,这些私人字段不会在客户端的代理代码中生成。

+0

是的,我有公共属性,如 公共字符串单位名称 { 得到{_organizationName; } set {_organizationName = value; } } [DataMember] public string OrganizationAddr { get {return _organizationAddr; } set {_organizationAddr = value; } } [DataMember] public int?总员工 { get {return _totalemp; } set {_totalemp = value; } } – Bharath 2013-05-08 12:24:56

+0

我得到了答案,感谢stackoverflow。 这是解决方案: 1)右键点击服务参考 2)在指定的引用程序 4选择配置服务引用 3)选择重用类型),只要选择除“Newtonsoft.json”一切 它的工作对我来说好。 @dmusial感谢您的回复。 – Bharath 2013-05-08 12:30:35