首页 > 代码库 > “不包含定义,并且找不到可接受类型的第一个扩展方法”

“不包含定义,并且找不到可接受类型的第一个扩展方法”

       最近在敲王继彬视频中登录的例子时,经常遇到“不包含定义,并且找不到可接受类型的第一个扩展方法”的问题,于是就查了查相关的内容。错误列表见下图:




当设计界面出现这个问题时,返回Windows窗体界面,情况如下:


1、为什么会出现这个界面?

       Windows 窗体设计器无法加载时 Microsoft Visual Studio 中显示的设计时错误列表的含义和使用方法。 如果出现此错误列表,则不应将其理解为设计器中的 Bug,而应作为纠正代码中的错误的辅助手段。

2、这个界面的内容选项是什么?

     (1)错误的确切位置:

       [项目名称][窗体名称] 行:[行号] 列:[列号]。

     (2)转至代码:

       单击“转至代码”链接将跳转到代码中发生错误的位置。

     (3)显示调用堆栈:

       如果调用堆栈与错误关联,则可单击“显示调用堆栈”链接,这将进一步扩展此错误以显示调用堆栈。 检查堆栈可提供有价值的调试信息。 例如,可以跟踪在错误发生之前调用过的函数。 调用堆栈是可选定的,因此您可以复制并保存它。

     (4)忽略并继续

可以选择忽略错误条件并继续加载设计器。 选择此操作可能会导致意外行为。 例如,控件可能不会显示在设计图面。

     (5)MSDN 帮助主题:

       如果错误包含一个指向相关 MSDN 帮助主题的链接,则附加帮助将包含一个指向该帮助主题的链接。 当单击该链接时,Visual Studio 中将显示相关帮助主题。

     (6)MSDN论坛文章

3、解决办法:

       若单击“忽略并继续”,原先设计的控件就会不见了,又要重新设计界面。我的解决方法是:单击转至代码,把出现问题的那一行代码注释掉。这样,就不会再报错了。


4、那么为什么会出现这个错误呢?

         仅向外界公开标记有 ServiceOperationAttribute 的那些方法。如果在某个方法中省略了 ServiceOperationAttribute 特性,则当所编译的客户端应用程序调用缺少该特性的操作时,便会收到此错误消息。

       比如:单击窗体,进入Form1的load事件的代码编辑中,后来发现用不到它的load事件,就把这几行代码给注释掉了,这时候运行程序就会出现这一系列的问题。

       在这方面,VS和VB6是不一样的。对VS也在进一步熟悉中……