【问题标题】:Why does Visual Studio fail to update method signatures?为什么 Visual Studio 无法更新方法签名?
【发布时间】:2009-06-12 15:42:37
【问题描述】:

<rant>
在开发中,最大的时间消耗似乎是 Visual Studio。用它解决问题占用了我一半的开发时间,而我只剩下分配的一半时间来实施!
</rant>

回到问题。我在 ASP.NET 中开发了几个自定义控件:RaiseEventControl、HandlerControl。他们驻留在父表格上。这个想法是让 RaiseEventControl 触发一个事件,父级(通过添加一个处理程序)将事件向下推送到 HandlerControl。很简单。

一切运行良好,但我不得不更改活动的签名。更改签名后,Visual Studio 拒绝通知更改。

我尝试重新编译网站。打开和关闭 Visual Studio(我知道,蹩脚的酱汁,但它适用于 Windows。)我试图在谷歌上搜索这个问题,但一无所获。我不完全确定如何表达这个问题,这可能是我找不到解决方案的原因。

那么,你知道为什么 VS 不会更新我的事件签名吗?

【问题讨论】:

  • 有趣的是,当我使用 Visual Studio 并且不得不适应这些愚蠢的 CMake 和 KDevelop 的事情时,我最大的时间浪费 ;)

标签: .net asp.net visual-studio visual-studio-2008 events


【解决方案1】:


我宁愿在我的 p*hole 上钉十美分的钉子,也不愿在 VS 之外编写代码。

Visual Studio 什么时候做过这样的重构? aspx/cx/whateverx 中的方法被视为魔术字符串而不是方法名称。事实上,由于这些页面是 XML,它们是魔术字符串。 Visual Studio 从未更新任何 XML (aspx/xaml/xoml) 以反映代码中的更改。它只是从来没有做过。

Visual Studio 从未做过很多事情。比如让我成为一个sammich。我不会为此责怪VS。 这就是女人的目的。就是这样。

为什么不这样做呢?因为它没有编码。也许他们会将这一点包含在他们的重构支持中。或者,也许您应该只获得添加此类支持的众多可用插件(如 ReSharper)中的一个。并且还可以做很多其他 Visual Studio 不做的事情。

如果他们能把十便士的钉子敲出来,我实际上可能会用一两个。

【讨论】:

    【解决方案2】:

    您能解释一下“visual studio 没有注意到”是什么意思吗?它没有出现在下拉列表、属性网格等中吗...

    如果 Visual Studio 在重新编译并重新启动后没有注意到,则几乎可以肯定是您更新签名的方式存在问题。 Visual Studio 不会在会话之间缓存此类信息,而是在每次打开时重新计算它。所以它只是在每次旧签名时重新计算。它必须仍然存在于您项目的某个地方。

    【讨论】:

    • @Jared - 未能注意到 IDE/Intellisense 没有获取更新的签名。
    • @LFSR Consulting,如果是这种情况并且它正在使用旧签名,那么它可能没有正确更新或在所有地方都没有更新。您是否使用反射器来验证它是否按照您认为的方式编写?
    • @JaredPar - 不,我没有,我会试试看
    【解决方案3】:

    自定义控件是否在单独的程序集中?如果是这样,当我重新编译整个解决方案时通常会有所帮助,或者,如果没有帮助,只需删除对程序集的引用并将其重新添加。但是,我使用的是 WinForms 或 WPF 并且不知道ASP.NET 中的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 2010-09-25
      相关资源
      最近更新 更多