2010-07-26 55 views
0

我有两个servicehosts托管于2个合同,我必须第一个合同一个单独的对象,所以当其他的ServiceHost尝试创建一个对象从该类它只是检索来自同一个对象在WCF访问的ServiceHost第一ServiceHost的,从另一个ServiceHost的C#

这可能意味着我需要找到除了爱情之外访问的ServiceHost,并从它那里得到的,而不是创建一个新的对象..任何想法?

在此先感谢

+0

使用像NInject或StructureMap一个Depedency注入框架来定义描述你单身的对象 – 2010-07-26 14:31:03

+0

的界面我不认为我的问题是如何实现单一个基于单的实现,我已经做到了,事情是从一个端点(ServiceHost的)它完全以不同的过程,这意味着当其他端点尝试创建新的对象,它会永远找不到对象,因为第一个目的是在不同的进程(ServiceHost的)创建的,这就是为什么我想我需要找到客场从其他的ServiceHost – Stacker 2010-07-26 14:38:24

+0

访问ServiceHost的,如果你有一个接口'IMySingleton'并使用DI容器,并将其定义为singleton,那么这两个服务的主机实例可以只是简单的要求实现从接口的类在DI容器和DI容器将保证都得到相同的实例(单个实例) – 2010-07-26 14:52:22

回答

0

所以,我觉得你可以让服务类自己的实例,然后通过这个实例同时服务的主机上。我还没有深入地测试过这个。

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 
public class Calc: ICalc 
{ 
} 

var calc = new Calc(); 
var h1 = new ServiceHost(calc, baseAddress1); 
var h2 = new ServiceHost(calc, baseAddress2); 
+0

火箭感谢您的回答,但你回答一个1岁多的问题,我甚至不具备的代码了,以确保你的答案会工作,所以我不能告诉这是否会起作用。 – Stacker 2011-07-27 15:24:53

+0

哦,没看到日期,不用打扰。 – rocketsarefast 2011-08-20 23:06:49