2011-05-14 28 views
0

目前,每當客戶端連接到他時,我的DomainService都會執行資源的初始化。每個客戶端都應該訪問該資源的同一個實例。 我想在WebService的StartUp上初始化這個資源。 WCF Ria Services有沒有機會這樣做?WCF Ria DomainService - 在啓動時初始化WebService

編輯: 好的,不要提及它。我想用這個全局DbContext對象。無論如何,這並不是一個好主意,因爲HttpApplication會管理多個線程,它們可以同時訪問DbContext。我會將我的實現更改爲「每個線程」,分別爲「每個HttpContext」,方法。無論如何,謝謝。

回答

1

您可以定義一個包含該資源的靜態屬性的類。在DomainService中,您可以訪問該屬性。只有當它第一次被訪問時,它纔會被初始化。

例子:

public class ResManager { 
    public static MyObject {...} 
} 

在的DomainService:

public IQueryable<SomeClass> GetSomeObjects() 
{ 
    // you can access it here and it will not be initialized 
    // every time the DomainService is called 
    MyObject obj = ResManager.MyObject; 
    return new List<SomeClass>().AsQueryable(); 
} 

如果你想在服務啓動時初始化它,那麼你應該能夠做到的是,在Global類。

+0

我試着用一個靜態的DbContext對象。現在我得到了加載錯誤:「DbContext已被處置」。我檢查了對DbContext構造函數和析構函數的調用。在應用程序關閉之前不會調用最後一個。這裏發生了什麼? – 0xbadf00d 2011-05-15 07:16:29

+0

更新了我的初始帖子。 – 0xbadf00d 2011-05-15 07:49:21