我的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)
有更好的方法吗?
答案 0 :(得分:2)
更好的技术是使用您想要的公共静态属性创建一个类(可能是静态的),然后从Global.asax.cs和您的业务类引用它。
该类可以在您的业务项目中,也可以在您的业务项目和Web项目引用的单独项目中。
答案 1 :(得分:1)
您的商务课程必须独立于您的网站。您需要以这种方式重新评估您这样做的原因。业务类实际上不需要访问该属性,或者该属性不需要位于global.asax中。