c# - 在设计器中打开表单时出现 MissingMethodException;运行时工作正常

标签 c# forms designer missingmethodexception

假设我有一个项目 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/

相关文章:

C# 手动锁定/解锁

c# - 是否对 Contract.Ensures 执行静态检查?

asp.net-mvc - Ajax.BeginForm 总是触发 OnSuccess 方法,即使数据是坏的

c++ - gui设计器的实现

c# - 是否存在将源代码转换回 CodeCompileUnit 的现有方法?

c# - 手动连接 Page_PreInit 事件,AutoEventWireup 设置为 false

javascript - 如何将动态输入字段的所有值发送到操作页面以及 `echo` 和 `Ordered List` 以及这些值?

php - 如何用php将表单数据提交到特定数据库,我的参数有什么问题?

c# - VS Designer 将 "empty"字符串替换为指向空字符串的资源标识符

c# - 自定义警报框显示不正确