WCFをはじめました。
今回はWCFサービスを作成します。クライアントは次回作成します。
WCFでは構成ファイルを使用することもできますが、今回はすべてコードで実装します。
準備
- コンソールアプリケーションのプロジェクトを作成する。
- System.ServiceModelへの参照を追加する。
コントラクトのソースコード
株価を返すだけのクラスです。
using System.ServiceModel; namespace HelloWorld { [ServiceContract] public interface IStockService { [OperationContract] double GetPrice(string ticker); } public class StockService : IStockService { public double GetPrice(string ticker) { return 94.85; } } }
Mainのソースコード
using System; using System.ServiceModel; using System.ServiceModel.Description; namespace HelloWorld { public class Service{ static void Main() { ServiceHost serviceHost = new ServiceHost(typeof(StockService), new Uri("http://localhost:8000/HelloWorld")); // アドレス serviceHost.AddServiceEndpoint( typeof(IStockService), new BasicHttpBinding(), // バインディング ""); // HTTP GETを有効にする ServiceMetadataBehavior behavior = new ServiceMetadataBehavior(); behavior.HttpGetEnabled = true; serviceHost.Description.Behaviors.Add(behavior); // MEX(MetadataExchange)エンドポイントを公開する serviceHost.AddServiceEndpoint( typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding(), "mex"); serviceHost.Open(); Console.ReadLine(); serviceHost.Close(); } } }