2011-02-02 73 views
0

我在Global.asax.cs類上有一個屬性,需要從業務類訪問,即使用HttpContext.Current。如何從業務類訪問公共Global.asx.cs屬性?

我該怎麼做?

的Global.asax.cs(在Web項目)

public partial class Global : System.Web.HttpApplication 
{ 



    public static ProxyGenerator Generator = new ProxyGenerator(); 

業務類(在一個單獨的業務項目)

var generator = ((Sei.Osp.Web.Global)HttpContext.Current.ApplicationInstance) 

這顯然是行不通的,我不希望以引用商業項目中的整個Web項目,因爲它將創建一個循環引用(業務項目已在Web項目中引用)

更新: 澄清 - 我創建的屬性擁有Castle Dynamic Proxy Generator類的一個實例。我讀過,你不應該只是創造這個全地方。 所以我想我會在我的Global.asax.cs中創建它,然後在需要創建代理類的地方使用該實例(我正在使用它來執行AOP)

有沒有更好的方法這樣做?

回答

2

更好的方法是用你想要的公共靜態屬性創建一個類(可能是靜態的),然後從Global.asax.cs和你的業務類中引用它。

該類可能位於您的業務項目中,也可能位於您的業務項目和Web項目引用的單獨項目中。

1

您的商務類需要獨立於您的網站。你需要重新評估你這樣做的理由。商業類別不需要訪問該屬性,或者該屬性不需要位於global.asax中。