C# 从另一个ServiceHost C访问WCF中的ServiceHost
我有两个合约托管在两个servicehosts中我需要在第一个合约中有一个singleton对象,因此当另一个servicehost尝试从该类创建对象时,它只从第一个servicehost检索相同的对象 这可能意味着我需要找到其他方法来访问servicehost并从中获取对象,而不是创建一个新的。。有什么想法吗C# 从另一个ServiceHost C访问WCF中的ServiceHost,c#,wcf,servicehost,C#,Wcf,Servicehost,我有两个合约托管在两个servicehosts中我需要在第一个合约中有一个singleton对象,因此当另一个servicehost尝试从该类创建对象时,它只从第一个servicehost检索相同的对象 这可能意味着我需要找到其他方法来访问servicehost并从中获取对象,而不是创建一个新的。。有什么想法吗 提前感谢因此,我认为您可以自己创建服务类的实例,然后将该实例传递给两个服务主机。不过我还没有深入测试过 [ServiceBehavior(InstanceContextMode = In
提前感谢因此,我认为您可以自己创建服务类的实例,然后将该实例传递给两个服务主机。不过我还没有深入测试过
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class Calc: ICalc
{
}
var calc = new Calc();
var h1 = new ServiceHost(calc, baseAddress1);
var h2 = new ServiceHost(calc, baseAddress2);
使用依赖注入框架,如NInject或StructureMap,为描述singleton对象的接口定义基于singleton的实现我不认为我的问题是如何实现singleton,我已经做到了,这是因为一个端点servicehost的进程完全不同,这意味着当另一个端点尝试创建新对象时,它将始终找不到任何对象,因为第一个对象是在不同的processservicehost中创建的,这就是为什么我认为如果有接口,我需要从另一个servicehost中查找以访问servicehost的原因IMySingleton并使用DI容器并将其定义为singleton,那么您的两个服务主机实例只需从DI容器请求实现该接口的类,DI容器将保证两者都得到相同的实例singleton InstanceHanks rocket作为您的答案,但是您回答了一个1年前的问题我甚至没有代码来确保您的答案有效,所以我无法判断这是否有效。哦,没有看到日期,不要麻烦。