我有一个基类:
public BaseData()
{
var dbConnection = "BasicFinanceEntities";
if (Session != null && Session.TestModeActive)
{
dbConnection = "TestConnection";
}
Context = new BasicFinanceEntities(dbConnection);
Context.Configuration.LazyLoadingEnabled = false;
}
所有数据访问类都使用Base类 .
例如:
public class AuthenticationData : BaseData
{
public AuthenticationData(SessionObject session)
{
Session = session;
}
.....
注意,'Session'在Base类中声明 .
我的所有数据类都采用Session对象,因此我知道用户是否经过身份验证,他的id(对于last_update_user类型的东西),以及一些安全检查(此用户是否可以看到此帐户..) .
所以他们采用一个参数,即会话对象 .
问题是,我需要我的基类来知道这个会话对象 - 但似乎基类具有Session的空值(它是基类中的公共声明,并且Base的所有子类都可以访问它) .
在子构造函数中的任何代码之前,基本构造函数似乎都会触发 .
有没有办法让基类看到传递给子类的参数?
1 回答
如果需要,请使基类构造函数获取该会话对象:
然后从派生类构造函数中调用该构造函数: