先吐个槽,到目前为止接触的东西也就是些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);
}
}
ICalculator
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;
}
}
}
CalculatorService
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();
}
}
}
}
通过代理对象WCFService.CalculatorServiceClient调用WCF
b、在当前解决方案下新建一个控制台应用程序Client并添加System.ServiceModel程序集,同时添加Service.Interface和
修改配置文件,添加system.serviceModel节点
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,望大神不要喷我,如有写错的地方 望各位大神一定拍醒我
第一节 构建一个简单的WCF应用,布布扣,bubuko.com