WCF入门第一篇 实现一个服务步骤
纯留给非智能的自己,做笔记。如不幸有患友,望能共勉!
先实例出一个场景,然后将WCF实现步骤套在场景上,方便理解和记忆。
1.商场场景
商场详情:如 "深圳市 上梅林梅华路华茂苑 / 茂业百货 +满足购买需求" 对应到 http://192.168.1.99/BuySerive + BuyService.
商场服务档口:手表、衣服、生鲜等服务接口。
购买须知:商场一般会提前给顾客一些促销页、商品介绍页等、购买指南、须知等,不然顾客会不知所措。这个就是 服务端的元数据交换。
代码如下
Uri baseUri = new Uri("http://192.168.1.99:8000/BuyService"); //商场地址详情
ServiceHost host = new ServiceHost(typeof(BuyService),baseUri); //商场开始运作服务,对外公布地址详情,同时公布 BuyService服务.
//添加业务档口
host.AddServiceEndpoint(typeof(IBook),new WSHttpBinding(),"BookServices"); //书籍档口,必须被 BuyService实现
host.AddServiceEndpoint(typeof(IComputer), new WSHttpBinding(), "ComputetrServices"); //电脑档口,必须被 BuyService实现
//促销员发布 促销页、购买须知等信息。方便客户购买
ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
behavior.HttpGetEnabled = true;
host.Description.Behaviors.Add(behavior);
//正常开业
host.Open();
2.客户端场景
1.用代理添加服务地址,根据服务端促销页元数据生成代理类BookClient、ComputerClient。一个档口业务就一个代理类。
2.用代理类调用业务方法。
代码
BookClient client = new BookClient();
client.AddOneBook(new Book() { BookId = 123, BookName = "测试", Price = 123 });
List<Book> lstData = client.GetAllBooks().ToList();
ComputerClient cpClient = new ComputerClient();
cpClient.BuyOneConputer(new Computer() { ComputerName = "联想电脑", Price = 3500 });
List<Computer> lstCP = cpClient.GetAllComputers().ToList();
根据这个例子大概清楚了 怎么写一个简单的WCF服务。但是对于WCF服务来说,只是一个皮毛而已,下面将深挖 通信协议、配置承载服务、会话实例化并发等知识