系统架构设计
什么是WCF
一组用来创建软件服务的.NET 2.0类
约定(两边的接口)
绑定
地址
如何使用WCF
服务器端
开发人员定义约定
开发人员实现约定
开发人员提供服务
IT人员配置绑定
IT人员配置地址
IT人员监控系统
客户端
开发人员下载Metadata
开发人员生成Proxy
开发人员调用Proxy
IT人员生成绑定
IT人员生成地址
IT人员监控系统
IService1.cs
[DataContract(Name="ProspectiveDeal", Namespace="WoodgroveBank")]
public class Deal
{
[DataMember(Name="StockSymbols")]
public string[] symbols;
[DataMember(Name="Date")]
private DateTime _when;
public DateTime When { get { return this._when; } }
}
[DataContract(Name="DealAnalysis", Namespace="WoodgroveBank")]
public class Analysis
{
[DataMember]
public decimal Value;
[DataMember]
public decimal RiskFactor;
}
[ServiceContract(Name="DealService", Namespace="WoodgroveBank")]
public interface IDeal
{
[OperationContract(Name="Analyze")]
Analysis AnalyzeDeal(Deal dealToAnalyze);
[OperationContract(Name="Execute", IsOneWay=true)]
void ExecuteDeal(Deal dealToAnalyze);
}
Service1.cs
public class DealAnalyzer : IDeal
{
Analysis IDeal.AnalyzeDeal(Deal dealToAnalyze)
{
Analysis a = new Analysis();
return a;
}
void IDeal.ExecuteDeal(Deal dealToExecute)
{
System.Threading.Thread.sleep(3000);
}
}
public class DealAnalyzer1 : IDeal
{
Analysis IDeal.AnalyzeDeal(Deal dealToAnalyze)
{
Analysis a = new Analysis();
return a;
}
void IDeal.ExecuteDeal(Deal dealToExecute)
{
System.Threading.Thread.sleep(3000);
}
}
ConsoleApplication
class Program
{
static void Main(string[] args)
{
using(ServiceHost host = ServiceHost(typeof(DealAnalyzer)))
{
host.Open();
Console.WriteLine("The service is running, Press any key to stop");
Console.RaadLine();
}
finally
{
host.Close();
}
}
}