我有一个asp.net mvc web应用程序来在视图中显示一个表。
我还有一个数据访问项目(它是一个类库,这个项目的dll将被放入上面的MVC项目并访问其中的数据)。
我的网络应用程序没有进行数据访问。类库接受它。它包含app.config中的连接字符串,实体框架数据上下文也在库中。现在该库在控制台应用程序中运行良好。但它在Web应用程序中失败,因为连接字符串为空。
基本上在类库中,可以获得连接字符串:
public class EndpointManagement : IEndpointManagement
{
public string GetConnectionString(MyDataContext context)
{
return ConfigurationManager.AppSettings["connectionString"];
}
}
不确定如何在网络应用程序中处理它????
答案 0 :(得分:1)
将连接字符串放在web.config中。
答案 1 :(得分:0)
我发现这很多 - 一个类库,需要来自主机应用程序的web.config或app.config的<appSetting>
或连接字符串。
这是有问题的,因为对连接字符串的依赖是在类库中“隐藏”的。有人引用了库,它以null引用异常失败,找到原因的唯一方法是查看库的源代码。它就是 - 它期待<appSettings>
中的值。
最好避免在我们的类中的任何地方直接依赖app.config。但如果它无法帮助,我建议至少抛出一个非常明确的异常 - “类Xyz需要连接字符串......”并指定它在哪里寻找该连接字符串。至少消费者不必猜测和阅读额外的源代码。