2012-06-20 26 views
3

我想爲我的應用程序(.NET,C#)中正在進行的操作實現一定的上下文,以便由應用程序啓動並執行的代碼可以訪問它。允許操作訪問共享上下文(例如WCF中的OperationContext)

問題在於上下文並沒有作爲一個對象傳遞,就像某些API正在做的那樣。

我想在WCF中實現類似於OperationContext的東西,這個靜態類可以提供每個操作的上下文。

如何才能實現這樣一個系統?

使用示例:

我們的應用程序加載和執行由任何人都可以訪問我們的SDK創建的第三方「插件」。

這樣的用戶代碼可能是這樣的:

public void SomeMethod(string a, string b) 
{ 
    // NEEDED: something like this 
    Context.Results = new Results(); 

    // Do some stuff here 

    // Call another method (without passing Results to it) 
    AnotherMethod(); 
} 

public void AnotherMethod() 
{ 
    // NEEDED: Access the context (Results) somehow to add more info to it. 
    Context.Results.Add(something); 
} 

根據這個例子,我需要的是一些靜態Context類,但我怎麼能知道它會在我的應用程序中每個執行的操作是唯一?

+0

Webforms應用程序?的WinForms? WPF? ASP.NET MVC? CF? WP7? – AakashM

+0

基於WinForms(.NET 3.5) –

回答

1

作爲一種選擇,如果您要在解決方案中引入IoC容器(如Autofac),它可以在創建對象時提供對共享上下文的訪問。

有關示例,請參閱this SO question,該示例指向關於對象關係類型的this article。它應該給你一些關於這種方法有什麼可能的想法。

相關問題