如果命名空间与路径不匹配,则不会打开从另一个窗体继承的窗体

本文关键字:窗体 另一个 继承 命名空间 路径 不匹配 如果 | 更新日期: 2023-09-27 18:20:59

我遇到了一个问题,我有一个从公司基本框架中的基本控件继承的窗体。

在这种情况下,基本控件被称为PlugInBase,并且是从标准System.UserControl继承的。namespace必须是固定的,并且与程序集的路径不匹配。namespacenamespace Omitec.ThreeG.Runtime.Portal.PlugIns,但路径是Omitec.ThreeG.Runtime.Portal.WindowsNative.PlugInBase

如果我试图打开基于PlugInBase的表单,我会得到标准的Exception屏幕,说设计器无法显示,因为Omitec.ThreeG.Runtime.Portal.PlugInBase无法加载。

然而,如果我更改PlugInBase中的namespace以匹配路径,它就不会打开任何麻烦。

另一件奇怪的事情是,只有我们办公室的一些工程师有这个错误。其他人则不然。

经过进一步调查,继承的控件命名空间与文件路径不匹配肯定是个问题。

是否有一些设置严格执行命名空间的查找?正如我之前提到的,办公室里的一些开发人员对完全相同的代码部分没有这个问题。

由于框架是共享代码,我无法更改标准中的namespace

这已经让我发疯一段时间了。有什么想法吗?

如果命名空间与路径不匹配,则不会打开从另一个窗体继承的窗体

Visual Studio有时会这样做。

请记住,设计器实际上是运行窗体的构造函数来生成设计器的。如果有什么东西可能会引发这个异常,那可能是你的原因。

由于程序实际上并没有运行,因此存在设计时错误的空间。

如果这不是问题所在,我解决的另一种方法是关闭所有开放的设计器。清理解决方案,生成,然后再次打开设计器。有时,如果visual studio已经开放了一段时间,我必须添加一个额外的步骤来关闭它。