如果命名空间与路径不匹配,则不会打开从另一个窗体继承的窗体
本文关键字:窗体 另一个 继承 命名空间 路径 不匹配 如果 | 更新日期: 2023-09-27 18:20:59
我遇到了一个问题,我有一个从公司基本框架中的基本控件继承的窗体。
在这种情况下,基本控件被称为PlugInBase
,并且是从标准System.UserControl
继承的。namespace
必须是固定的,并且与程序集的路径不匹配。namespace
是namespace Omitec.ThreeG.Runtime.Portal.PlugIns
,但路径是Omitec.ThreeG.Runtime.Portal.WindowsNative.PlugInBase
。
如果我试图打开基于PlugInBase
的表单,我会得到标准的Exception
屏幕,说设计器无法显示,因为Omitec.ThreeG.Runtime.Portal.PlugInBase
无法加载。
然而,如果我更改PlugInBase
中的namespace
以匹配路径,它就不会打开任何麻烦。
另一件奇怪的事情是,只有我们办公室的一些工程师有这个错误。其他人则不然。
经过进一步调查,继承的控件命名空间与文件路径不匹配肯定是个问题。
是否有一些设置严格执行命名空间的查找?正如我之前提到的,办公室里的一些开发人员对完全相同的代码部分没有这个问题。
由于框架是共享代码,我无法更改标准中的namespace
。
这已经让我发疯一段时间了。有什么想法吗?
请记住,设计器实际上是运行窗体的构造函数来生成设计器的。如果有什么东西可能会引发这个异常,那可能是你的原因。
由于程序实际上并没有运行,因此存在设计时错误的空间。
如果这不是问题所在,我解决的另一种方法是关闭所有开放的设计器。清理解决方案,生成,然后再次打开设计器。有时,如果visual studio已经开放了一段时间,我必须添加一个额外的步骤来关闭它。