首页 > 代码库 > 第一节 构建一个简单的WCF应用
第一节 构建一个简单的WCF应用
先吐个槽,到目前为止接触的东西也就是些ado.net、select、delete、update、create、临时表的批量操作、及稍微复杂点的几个表之间查询再带几个excel导入导出 然后会点前端的js、jquery等,所以在公司目前薪水并不高(能在广州生活下去吧,什么买车买房的想都别想),拿自己身边的同志一比较感觉心里不怎么平衡,凡事还是得靠自己 自强才是硬道理,就吐到这里吧!开始我的wcf之旅吧 本人理工科类型的文笔很烂 希望各位大神不要喷小弟哦(参照的书本:WCF全面解析)
咱们还是从小学开始吧,四则运算,用wcf实现一个加减乘除的小功能
1、新建一个空解决方案
2、添加类库项目(Service.Interface)并添加System.ServiceModel程序集,新建一个接口(ICalculator)
using System.ServiceModel; namespace Service.Interface { [ServiceContract(Name="CalculatorService")] public interface ICalculator { [OperationContract] double Add(double x, double y); [OperationContract] double SubStract(double x, double y); [OperationContract] double Mutiply(double x, double y); [OperationContract] double Divide(double x, double y); } }
3、添加类库项目(Services)实现该接口并为该项目添加项目引用Service.Interface,然后添加一个类CalculatorService并实现接口ICalculator
using Service.Interface; namespace Services { public class CalculatorService:ICalculator { public double Add(double x, double y) { return x + y; } public double SubStract(double x, double y) { return x - y; } public double Mutiply(double x, double y) { return x * y; } public double Divide(double x, double y) { return x / y; } } }
4、添加控制台应用程序Hosting(并将服务寄宿与控制台程序中)并启动该控制台程序
a、通过程序来配置终结点
b、先配置终结点(以配置文件的形式写,实际项目开发中一般使用这种方式)
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <system.serviceModel> <behaviors> <serviceBehaviors> <behavior name="metadataBehavior"> <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:50002/calculatorservice/metadata" /> </behavior> </serviceBehaviors> </behaviors> <services> <service name="Services.CalculatorService" behaviorConfiguration="metadataBehavior"> <endpoint address="http://localhost:50002/calculatorservice" binding="wsHttpBinding" contract="Service.Interface.ICalculator"></endpoint> </service> </services> </system.serviceModel> </configuration>
然后再将服务寄宿在控制台程序中将wcf服务寄宿在控制台程序中
5、现在就可以调用上面建好的wcf服务啦(两种方式调用)
a、在非当前解决方案下新建一个控制台应用程序,并添加服务引用 输入配置文件中配置的服务元数据的地址:http://localhost:50002/calculatorservice/metadata 输入命名:WCFService ,系统会自动生成与接口相同的方法成员定义(先不管这个,b方法里面介绍) 现在可以使用了
using System; namespace Client { class Program { static void Main(string[] args) { using (WCFService.CalculatorServiceClient proxy = new WCFService.CalculatorServiceClient()) { Console.WriteLine(proxy.Add(3, 34)); Console.Read(); } } } }
b、在当前解决方案下新建一个控制台应用程序Client并添加System.ServiceModel程序集,同时添加Service.Interface和
修改配置文件,添加system.serviceModel节点View Code
using Service.Interface; using System; using System.ServiceModel; namespace Client { class Program { static void Main(string[] args) { using (ChannelFactory<ICalculator> cf = new ChannelFactory<ICalculator>("Calc")) { ICalculator calc = cf.CreateChannel(); Console.Write(calc.Add(33, 33)); Console.ReadLine(); } } } }
先运行Hosting,在运行Client 就可以看到结果
至此,本篇gameover!
小弟第一次写blogs,望大神不要喷我,如有写错的地方 望各位大神一定拍醒我