我有一个服务层,它公开了一些方法,这些方法在我的 asp.net 应用程序的ObjectDataSource中使用。
服务类的构造函数有一个参数,就是一个int,用来跟踪当前登录的用户:
public ProjectService(int userId)
{
_userId = userId;
pb = new ProjectBusiness(_userId);
}
但是,我的服务在没有参数的情况下运行良好。自从我添加它以来,我受到了打击:
没有为此对象定义无参数构造函数。
有没有办法将此参数从对象数据源传递到我的服务层?或者也许有更好的方法来处理我的服务(然后是业务和数据层)知道当前存储在 Session[] 中的 UserID?
我发现的一种解决方法是在代码中声明参数:
protected void ChargeRatesODS_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
var service = new ResourceService(Common.CurrentUserId());
e.ObjectInstance = service;
}
这是唯一的方法,也是最好的做法,然后我可以坚持下去,但是..这是处理参数的方法吗?我希望构造函数有一个参数,以便它强制开发人员传入一个有效的 UserID,主要是出于日志记录和角色管理的原因。