我有一个基类BLLContext:
public sealed class BLLContext : IDisposable
{
private LayersSharedObjects _layersSharedObjects = null;
internal HttpContext httpContext = HttpContext.Current;
Authorization _authorization = null;
public Authorization Authorization
{
get
{
if (_authorization == null)
{
_authorization = new Authorization(this);
}
return _authorization;
}
}
public BLLContext()
{
}
}
我的所有BLL类都有一个构造函数,它应该获得上述类的对象。例如:
public class Authorization : BLLBase
{
public Authorization(BLLContext bLLContext) : base(bLLContext)
{
}
}
在我必须从BLLContext实例的Authorization类中获取一些信息之前,一切都很好。所以我将这部分添加到BLLContext类:
public Authorization Authorization
{
get
{
if (_authorization == null)
{
_authorization = new Authorization(this);
}
return _authorization;
}
}
但是因为授权类必须获取BLLContext并且我在BLLContext中,所以我将“this”传递给Authorization构造函数。
有人可以解释它是否适用于循环引用?似乎不是在使用.Net Profiler进行检查时。
我应该怎么做才能避免这种情况但仍然通过“这个”并保持当前的结构?该系统运行良好,没有任何重大问题。