2010-07-26 45 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