+ -
当前位置:首页 → 问答吧 → WCF 动态加载外部工程中的服务与契约

WCF 动态加载外部工程中的服务与契约

时间:2011-12-26

来源:互联网

WCF 动态加载外部工程中的服务(dll文件)与契约

想做一个纯控制台的wcf宿主
在控制台中没有服务与契约

服务与契约都是在外部动态加载进来的。  

求思路。求代码。。

作者: YanHanP   发布时间: 2011-12-26

为何没有人来?

作者: YanHanP   发布时间: 2011-12-26

这个问题提的不错,我现在的项目里用WCF通信,做Winform客户端,每次发布服务版本都需要拷贝每个模块的dll文件到服务目录下再启动服务,很麻烦。也希望能有自动动态拷贝的办法,同样等待~~

作者: Alexanderlc   发布时间: 2011-12-26

完全可以啊,因为你只要做到: 获得Service类型就可以开始 Host 了。

先从获得 ServiceModel 配置节开始:

var conf = ConfigurationManager.OpenExeConfiguration(Assembly.GetEntryAssembly().Location);  
var svcConf = (ServiceModelSectionGroup)conf.GetSectionGroup("system.serviceModel");  

然后获得 Service 类型。

当然通过反射 dll 排查具有 [ServiceContract] 特性的类型,我想也可以。

作者: fangxinggood   发布时间: 2011-12-26

引用 2 楼 alexanderlc 的回复:
这个问题提的不错,我现在的项目里用WCF通信,做Winform客户端,每次发布服务版本都需要拷贝每个模块的dll文件到服务目录下再启动服务,很麻烦。也希望能有自动动态拷贝的办法,同样等待~~


你说的这个方案我也想过 但 如何动态的创建host对象呢?
一个一个open有点不合理性。。。

作者: YanHanP   发布时间: 2011-12-26

引用 3 楼 fangxinggood 的回复:
完全可以啊,因为你只要做到: 获得Service类型就可以开始 Host 了。

先从获得 ServiceModel 配置节开始:

var conf = ConfigurationManager.OpenExeConfiguration(Assembly.GetEntryAssembly().Location);
var svcConf = (ServiceModelSection……



你说的这个方案我也想过 但 如何动态的创建host对象呢?
一个一个open有点不合理性。。。

作者: YanHanP   发布时间: 2011-12-26