假设我有一个项目 A,其类 A 具有此属性:
public bool IsConnected { get { return m_isConnected; } private set { m_isConnected = value; } }
在同一个解决方案中,我有一个引用项目 A 的项目 B,并且有一个名为 Login 的用户控件。此控件具有此属性:
private A m_A = null;
在 Login 的构造函数中,我做了这个调用:
if (m_A != null && m_A.IsConnected) { ... }
在同一个项目中,主窗体上有一个用窗体设计器添加的用户控件 A。程序运行良好,并且正确读取了该属性。
但是,当在设计器中打开主窗体时,出现以下异常: MissingMethodException: 'Boolean A.get_IsConnected()'
注释掉 m_A.IsConnected 让我使用设计器,但这变得非常烦人。有时它似乎只是随机工作。
有什么想法吗?
最佳答案
过去有人告诉我,this.DesignMode 并不总是完全可靠。您可以使用的另一个选项是预处理器指令:
#if DESIGN
return;
#else
if (m_A != null && m_A.IsConnected) { /* etc. */ }
#endif
然后添加一个名为 DESIGN 的条件编译符号,你应该是金色的。
关于c# - 在设计器中打开表单时出现 MissingMethodException;运行时工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2222218/