1.你的第一個服務和主持人

建立一個使用 ServiceContract 屬性修飾的介面和使用 OperationContract 屬性修飾的成員函式。

namespace Service
{
    [ServiceContract]
    interface IExample
    {
        [OperationContract]
        string Echo(string s);
    }
 }

建立一個實現此介面的具體類,你就擁有了該服務。

namespace Service
{
    public class Example : IExample
    {
        public string Echo(string s)
        {
            return s;
        }
    }
}

然後建立執行服務的主機。這可以是任何型別的應用程式。控制檯,服務,GUI 應用程式或 Web 伺服器。

namespace Console
{
    using Service;
  
    class Console
    {
        Servicehost mHost;

        public Console()
        {
            mHost = new ServiceHost(typeof(Example));               
        } 

        public void Open()
        {
            mHost.Open();
        }
    
        public void Close()
        {
            mHost.Close();
        }

        public static void Main(string[] args)
        {
            Console host = new Console();
            
            host.Open();    

            Console.Readline();

            host.Close();
        }
    }
}

ServiceHost 類將讀取配置檔案以初始化服務。

<system.serviceModel>
  <services>
    <service name="Service.Example">
      <endpoint name="netTcpExample" contract="Service.IExample" binding="netTcpBinding" />
      <host>
        <baseAddresses>
          <add baseAddress="net.tcp://localhost:9000/Example" />
        </baseAddresses>
      </host>
    </service>
  </services>      
</system.serviceModel>