C# WCF初识
原文:http://www.cnblogs.com/artech/archive/2007/02/26/656901.html
方式1:
需引用 System.ServiceModel
namespace ConsoleApplication1 {/*契約(Contracts):主要定義了實現那些服務,如何訪問服務契約 通常是一個 接口,定義了我們會提供哪些服務。*/[ServiceContract(Name = "CalculatorService", Namespace = "http://www.artech.com/")]public interface ICalculator{//在方法上 聲明OperationContract 表示該方法是一個對外的服務 [OperationContract]double Add(double x, double y);[OperationContract]double Subtract(double x, double y);[OperationContract]double Multiply(double x, double y);[OperationContract]double Divide(double x, double y);}/*服務 則是如何實現這個契約*/public class CalculatorService : ICalculator{public double Add(double x, double y){return x + y;}public double Subtract(double x, double y){return x - y;}public double Multiply(double x, double y){return x * y;}public double Divide(double x, double y){return x / y;}} } View Code namespace ConsoleApplication1 {class Program{static void Main(string[] args){//原文:http://www.cnblogs.com/artech/archive/2007/02/26/656901.htmlusing (ServiceHost host = new ServiceHost(typeof(CalculatorService))){host.AddServiceEndpoint(typeof(ICalculator), new WSHttpBinding(), "http://127.0.0.1:9999/calculatorservice");if (host.Description.Behaviors.Find<ServiceMetadataBehavior>() == null){ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();behavior.HttpGetEnabled = true;behavior.HttpGetUrl = new Uri("http://127.0.0.1:9999/calculatorservice/metadata");host.Description.Behaviors.Add(behavior);}host.Opened += delegate{Console.WriteLine("CalculaorService已經啟動,按任意鍵終止服務!");};host.Open();Console.Read();} }} } View Code?
//方式2(配置App.config):
namespace ConsoleApplication1 {/*契約(Contracts):主要定義了實現那些服務,如何訪問服務契約 通常是一個 接口,定義了我們會提供哪些服務。*/[ServiceContract(Name = "CalculatorService", Namespace = "http://www.artech.com/")]public interface ICalculator{//在方法上 聲明OperationContract 表示該方法是一個對外的服務 [OperationContract]double Add(double x, double y);[OperationContract]double Subtract(double x, double y);[OperationContract]double Multiply(double x, double y);[OperationContract]double Divide(double x, double y);}/*服務 則是如何實現這個契約*/public class CalculatorService : ICalculator{public double Add(double x, double y){return x + y;}public double Subtract(double x, double y){return x - y;}public double Multiply(double x, double y){return x * y;}public double Divide(double x, double y){return x / y;}} } View Code namespace ConsoleApplication1 {class Program{static void Main(string[] args){//原文:http://www.cnblogs.com/artech/archive/2007/02/26/656901.html//WCF服務寄宿通過一個特殊的對象完成:ServiceHost。//在上面的例子中,基于WCF服務的類型(typeof(CalculatorService))創建了ServieHost對象,并添加了一個終結點。//具體的地址為http://127.0.0.1:9999/calculatorservice,采用了WSHttpBinding,并指定了服務契約的類型ICalculator。//接下來是要將這個服務承載于宿主中。和為這個服務分配一個訪問的地址。這時,需要新建一個App.config配置文件ServiceHost host = new ServiceHost(typeof(CalculatorService));//將服務寄宿在宿主中host.Open();//運行Console.WriteLine("服務已啟動、、、");Console.ReadKey(true);host.Close(); //關閉 }} } View Code <?xml version="1.0" encoding="utf-8" ?> <configuration><system.serviceModel><behaviors><serviceBehaviors><behavior name="metadataBehavior"><serviceMetadata httpGetEnabled="true" httpGetUrl="http://127.0.0.1:9999/calculatorservice/metadata" /></behavior></serviceBehaviors></behaviors><services><service behaviorConfiguration="metadataBehavior" name="ConsoleApplication1.CalculatorService"><endpoint address="http://127.0.0.1:9999/calculatorservice" binding="wsHttpBinding" contract="ConsoleApplication1.ICalculator" /></service></services></system.serviceModel> </configuration> View Code?
轉載于:https://www.cnblogs.com/guxingy/p/10329592.html
總結
- 上一篇: Vue(五)Vue规范
- 下一篇: 个人开发者接入支付宝,Android开发