【问题标题】:Extension Method is not a member of Class扩展方法不是类的成员
【发布时间】:2013-01-28 14:58:31
【问题描述】:

一段时间以来,我一直在使用扩展方法来扩展现有类的功能。一个例子:

<System.Runtime.CompilerServices.Extension()> _
Public Sub DrawRoundedRectangle(graphics As Graphics, pen As Pen, x As Single, y As Single, width As Single, height As Single, radius As Single)
    graphics.DrawRoundedRectangle(pen, x, y, width, height, radius, RectangleEdgeFilter.All)
End Sub

这很高兴地扩展了图形对象,以便我可以调用:e.graphics.DrawRoundedRectangle()

但是,Visual Studio 会每隔一段时间报告一次:

DrawRoundedRectangle 不是 System.Drawing.Graphics 的成员

这意味着我由于错误而无法构建,除了重新启动 Visual Studio(耗时)之外,我还没有找到克服这些错误的方法。

我在各种不同的类上有许多扩展方法(目前大约 10 种),所有这些方法同时崩溃,这会产生 66 个错误。

我的问题是,在创建这些扩展方法时我是否遗漏了什么,或者有什么办法可以阻止这些错误的发生?

【问题讨论】:

标签: vb.net visual-studio-2010 compiler-errors


【解决方案1】:

您是否在公共模块中定义扩展? 尝试“重建解决方案”,它是否解决了问题?

【讨论】:

  • 它会暂时解决这个问题,只是在 5-10 分钟后返回。非常耗时。最近升级到VS2012,不再出现此问题。