基类构造函数参数
本文关键字:参数 构造函数 基类 | 更新日期: 2023-09-27 18:18:09
有一个基类:
public BaseData()
{
var dbConnection = "BasicFinanceEntities";
if (Session != null && Session.TestModeActive)
{
dbConnection = "TestConnection";
}
Context = new BasicFinanceEntities(dbConnection);
Context.Configuration.LazyLoadingEnabled = false;
}
所有的数据访问类都使用基类。
,
public class AuthenticationData : BaseData
{
public AuthenticationData(SessionObject session)
{
Session = session;
}
.....
注意,'Session'是在基类中声明的。
我所有的数据类都采用一个Session对象,这样我就知道用户是否经过身份验证,他的id(对于last_update_user类型的东西),以及一些安全检查(这个用户可以看到这个帐户…)。
它们接受一个参数,也就是session对象
问题是,我需要我的基类知道这个会话对象-但似乎基类有一个空值的会话(这是一个公共声明在基类,和所有的子类的基可以访问它)。
似乎基构造函数在子构造函数中的任何代码之前触发。
是否有一种方法可以让基类看到传递到子类的参数?
如果需要的话,让基类构造函数接受会话对象:
public BaseData(SessionObject session)
{
Session = session;
var dbConnection = "BasicFinanceEntities";
if (Session != null && Session.TestModeActive)
{
dbConnection = "TestConnection";
}
Context = new BasicFinanceEntities(dbConnection);
Context.Configuration.LazyLoadingEnabled = false;
}
,然后从派生类的构造函数调用该构造函数:
public class AuthenticationData : BaseData
{
public AuthenticationData(SessionObject session) : base(session)
{
}
}