2012-10-16 49 views
0

這是我第一次在Visual Studio和C#中編程。我正在嘗試創建一個Web服務,但我的GetProduct沒有顯示出來。爲什麼這種服務方法沒有顯示出來?

namespace GettingStartedHost 
{ 
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together. 
public class Service1 : IService1 
{ 
    public string GetData(int value) 
    { 
     return string.Format("You entered: {0}", value); 
    } 

    public int GetProduct(int a, int b) 
    { 
     return a * b; 
    } 

    [ServiceContract] 
    public interface IService 
    { 
     [OperationContract] 
     int GetProduct(int a, int b); 

     [OperationContract] 
     string GetData(int value); 

     [OperationContract] 
     CompositeType GetDataUsingDataContract(CompositeType composite); 



    } 


    public CompositeType GetDataUsingDataContract(CompositeType composite) 
    { 
     if (composite == null) 
     { 
      throw new ArgumentNullException("composite"); 
     } 
     if (composite.BoolValue) 
     { 
      composite.StringValue += "Suffix"; 
     } 
     return composite; 
    } 

} 

}

當我按下CTRL-F5開始測試服務器中,只有2種方法顯示出來。 GetProduct不顯示。哪裏不對?

+2

樣品丟失的'IService1' ... –

+0

你更新客戶端項目的服務參考定義? – Silvermind

+0

你能詳細說一下嗎?我似乎無法得到它owrking – Alan

回答

0

請試試這個代碼。

namespace GettingStartedHost 
{ 
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together. 
    public class Service1 : IService1 
    { 
     public string GetData(int value) 
     { 
      return string.Format("You entered: {0}", value); 
     } 

     public int GetProduct(int a, int b) 
     { 
      return a * b; 
     } 

     public CompositeType GetDataUsingDataContract(CompositeType composite) 
     { 
      if (composite == null) 
      { 
       throw new ArgumentNullException("composite"); 
      } 
      if (composite.BoolValue) 
      { 
       composite.StringValue += "Suffix"; 
      } 
      return composite; 
     } 
    } 

    [ServiceContract] 
    public interface IService1 
    { 
     [OperationContract] 
     int GetProduct(int a, int b); 

     [OperationContract] 
     string GetData(int value); 

     [OperationContract] 
     CompositeType GetDataUsingDataContract(CompositeType composite); 
    } 

} 
+0

@Alan:在你的代碼有'服務1:IService1'但你的界面代碼已'IService'你缺少'1'。 – jams

+0

你好果醬,謝謝你的幫助。我得到「命名空間已經包含IService1的定義」它仍然不能工作:( – Alan