首先是要定义契约,在接口中定义方法,并在类中实现。
[ServiceContract]
public interface IStockService
{
[OperationContract]
double GetPrice(string ticler);
}
//继承该接口并实现方法
class StockService : IStockService
{
public double GetPrice(string ticler)
{
Console.WriteLine("服务被调用:" + ticler);
return 3.14;
}
}
其次是实例化服务并打开。
static void Main(string[] args)
{
ServiceHost serviceHost = new ServiceHost(typeof(StockService));
serviceHost.Open();
Console.WriteLine("服务启动成功");
Console.ReadKey();
}
最后配置App.config.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="WCFConfig.StockService">
<endpoint address="" binding="basicHttpBinding" contract="WCFConfig.IStockService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/WCFGetPrice" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
</configuration>
运行结果如下: