将环境变量传递给数据访问层

时间:2009-04-06 19:20:43

标签: c# data-access-layer

我们编写的每个存储过程都必须传递clientip,serverip,windows username等。

问题是如何有效地将这些传递给DAL?

3 个答案:

答案 0 :(得分:1)

我假设这是ASP.NET中的一个Web应用程序。如果是这种情况,您可以通过以下静态实例访问Web应用程序之外的Web请求上下文中的所有这些内容:

System.Web.HttpContext.Current

如果您需要的所有内容都是标准内容,您通常在页面级别默认使用的请求,响应和用户对象中,那么这应该就是您所需要的。如果您需要自定义到您的网络应用程序的信息,那么Ben的答案(上面)应该有效。

答案 1 :(得分:0)

您应该可以在System.Environment类中或在您自己的Thread Principal中访问所有上述数据。您的DAL可以轻松地从这两个或任何一个来源拉入。

答案 2 :(得分:0)

创建一个用于保存此数据的类,一个用于构建它的工厂和用于使用它的辅助方法。

IUserContext
{
int param1 {get;set;}
int param2 {get;set;}

SqlParameter[] GetSqlParameters();
}

UserContext : IUserContext{}

UserContextFactory
{
    internal IUserContext IUserContextFromRequest(){}
}
祝你好运