如何从业务类访问我的公共Global.asax.cs属性?

时间:2011-02-02 17:03:58

标签: asp.net castle-windsor

我的Global.asax.cs类中有一个属性,我需要从业务类访问,即使用HttpContext.Current。

我该怎么做?

Global.asax.cs(在网络项目中)

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 个答案:

答案 0 :(得分:2)

更好的技术是使用您想要的公共静态属性创建一个类(可能是静态的),然后从Global.asax.cs和您的业务类引用它。

该类可以在您的业务项目中,也可以在您的业务项目和Web项目引用的单独项目中。

答案 1 :(得分:1)

您的商务课程必须独立于您的网站。您需要以这种方式重新评估您这样做的原因。业务类实际上不需要访问该属性,或者该属性不需要位于global.asax中。