我有一个 vb.net Windows 窗体 应用程序,在其中使用 Windows 窗体的继承。我有一个基本表单,它提供了一些将与所有继承表单一起使用的基本布局和方法。这包括在基本形式构造函数中初始化 Entity Framework 上下文。
Dim dataContext As New CCEntities()
子表单可以使用此上下文。应用程序编译并运行时没有错误,但是当我尝试在设计器中查看子表单时,会显示一条错误,指出“在配置中找不到指定的命名连接,不打算与EntitlyClient 提供程序,或无效。”如果我将该初始化行移动到子表单构造函数中,设计器将不会出现错误。
为了解决此问题,我在初始化时在基本表单构造函数中将连接字符串指定为:
Dim dataContext As New CCEntities(System.Configuration.ConfigurationManager.ConnectionStrings.Item("CCEntities").ConnectionString)
将该引用添加到连接字符串后,子窗体现在显示“未将对象引用设置到对象的实例。”
但是,如果我将实体连接字符串硬编码到该初始化行中,设计器就可以正常工作。
基本表单似乎无法访问 app.config 文件。如何获得基本表单以正确访问 app.config 文件并使设计器正常工作?
最佳答案
您需要做的是防止代码在“设计时”运行。
if(System.ComponentModel.LicenseManager.UsageMode != System.ComponentModel.LicenseUsageMode.Designtime)
{
//do connection stuff here
}
关于winforms - 从基本表单访问连接字符串会导致设计器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12602326/