博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
winform里宿主WCF,并传递winform变量给WCF
阅读量:5792 次
发布时间:2019-06-18

本文共 1531 字,大约阅读时间需要 5 分钟。

最近客户要求把服务器端程序里的二个功能用service的方式提供出来,方便调用。首先想着单独建一个wcf 服务的项目,但是因为要用到server端程序winform里的变量,因此只能在winform里添加一个wcf service的item。下面介绍详细的操作步骤:

 

1. winform里添加wcf service的item

添加之后,app.config里会自动加上wcf的配置项:

 
 
 
 
 
 
 
 
 
 
 

 

其中下面这行,我把它改得简单了一点,默认的地址太长:

<add baseAddress=" />

 

2.  定义好service,这里我用构造函数把winform里的变量传进来:

public class BroadcastService : IBroadcastService
{
public static IRapidServerEngine m_RapidServerEngine;
public static IOrayCache m_OrayCache;
 
public BroadcastService(IRapidServerEngine rapidServerEngine, IOrayCache orayCache)
{
m_RapidServerEngine = rapidServerEngine;
m_OrayCache = orayCache;
}
 
...
}

 

3. 在form的load事件里host wcf服务, closed事件里关闭:

ServiceHost m_Host;
private void MainServerForm_Load(object sender, EventArgs e)
{
try
{
BroadcastService broadcastSvc = new BroadcastService(this.rapidServerEngine, orayCache);
m_Host = new ServiceHost(broadcastSvc);
m_Host.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
 
private void MainServerForm_FormClosed(object sender, FormClosedEventArgs e)
{
m_Host.Close();
}

 

这里要注意的是下面二行,把变量传递进去:

BroadcastService broadcastSvc = new BroadcastService(this.rapidServerEngine, orayCache);

m_Host = new ServiceHost(broadcastSvc);

如果不用传变量到wcf服务里,可以简化成

m_Host = new ServiceHost(typeof(BroadcastService))

4. wcf服务类上加上属性

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class BroadcastService : IBroadcastService

5. 启动winform程序后,就可以访问在第一步里定义的wcf地址了

<add baseAddress=" />

 

这时访问即可。

 

 

转载地址:http://gcwfx.baihongyu.com/

你可能感兴趣的文章
[Cocos2d-x For WP8]矩形碰撞检测
查看>>
自己写spring boot starter
查看>>
花钱删不完负面消息
查看>>
JBPM之JPdl小叙
查看>>
Membership三步曲之进阶篇 - 深入剖析Provider Model
查看>>
前端优化及相关要点总结
查看>>
struts2中form提交到action中的中文参数乱码问题解决办法(包括取中文路径)
查看>>
25 个精美的手机网站模板
查看>>
C#反射实例应用--------获取程序集信息和通过类名创建类实例
查看>>
VC中实现文字竖排的简单方法
查看>>
会话标识未更新
查看>>
阿里架构师:程序员必须掌握的几项核心技术能力
查看>>
程序员常用的六大技术博客类
查看>>
Iceworks 2.8.0 发布,自定义你的 React 模板
查看>>
胖哥学SpringMVC:请求方式转换过滤器配置
查看>>
Kotlin 更加优雅的 Builder - 理解 with
查看>>
前端日拱一卒D6——字符编码与浏览器解析
查看>>
深入理解浏览器的缓存机制
查看>>
微软向Linux社区开放60000多项专利:对开源微软是认真的
查看>>
Hoshin Kanri在丰田的应用
查看>>