位置:首頁 > 其他技術 > WCF教學 > 自托管消費WCF服務

自托管消費WCF服務

消費自托管WCF服務的整個過程,一步步地解釋以及充足的編碼和屏幕截圖是非常有必要。

第1步:服務托管,現在我們需要實現的代理類客戶端。創建代理的方式不同。

  • 使用svcutil.exe,我們可以創建代理類和配置文件以及端點。
  • 添加服務引用到客戶端應用程序。
  • 實現 ClientBase<T> 類

這三種方法,實現ClientBase<T>類是最好的做法。如果使用了兩個rest方法,需要創建一個代理類,每一次當我們做出改變服務的實現。但是,這不是對ClientBase<T>類情況。這將創建代理隻能在運行,所以它會打理一切。

為此,創建一個代理類,其中包括refrencesof System.ServiceModel和MyCalculatorService。

Consuming WCF that is Self hosted

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using MyCalculatorService;

namespace MyCalculatorServiceProxy
{
  Public class MyCalculatorServiceProxy : 
  //WCF create proxy for ISimpleCalculator using ClientBase
  ClientBase<ISimpleCalculator>,
  ISimpleCalculator
  {
     Public int Add(int num1, int num2)
     {
        //Call base to do funtion
        returnbase.Channel.Add(num1, num2);
     }
  }
}

現在,創建一個控製台應用程序,其中包括System.ServiceModel和MyCalculatorServiceProxy的參考。

Consuming WCF that is Self hosted

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using MyCalculatorServiceProxy;

namespace MyCalculatorServiceClient
{
  classProgram
  {
     Static void Main(string[] args)
     {
        MyCalculatorServiceProxy.MyCalculatorServiceProxy proxy = newMyCalculatorServiceProxy.MyCalculatorServiceProxy();
        Console.WriteLine("Client is running at " + DateTime.Now.ToString());
        Console.WriteLine("Sum of two numbers... 5+5 =" + proxy.Add(5, 5));
        Console.ReadLine();
     }
  }
}

步驟2:結束點(相同服務)的信息應該被添加到客戶端應用程序的配置文件。

<?xmlversion="1.0"encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
	 <client>
		<endpoint address ="http://localhost:8090/MyCalculatorServiceProxy/ISimpleCalculator"
				binding ="wsHttpBinding"
				contract ="MyCalculatorServiceProxy.ISimpleCalculator">
        </endpoint>
     </client>
  </system.serviceModel>
</configuration>

步驟3:運行客戶端應用程序之前,需要運行的服務。客戶端應用程序的輸出如下所示。

Consuming WCF that is Self hosted