系统架构设计
什么是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();
  }
 }
}

posted on 2010-02-26 22:57  IT Person  阅读(278)  评论(0编辑  收藏  举报