2013-05-08 47 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