2013-04-16 138 views
0

删除一个属性。从那以后,Visual Studio将生成的代码插入到使用该用户控件的每个表单中。现在我们要删除该属性,因为它不会被使用。但显然这样做会导致编译错误。有没有办法告诉Visual Studio从所有生成的代码中删除属性?在我看来,像[Obsolete()]这样的东西应该足以让Visual Studio从生成的代码中移除它。有没有其他的方法?如何从一个属性添加到自定义用户控件的自定义用户控件

+2

ASP.NET Web窗体? MVC?的WinForms? WPF? Silverlight的? –

+0

@MikeMcCaughan:这应该对Win和Web表单有效。 – leppie

+0

@leppie,不一定。 AFAIR,Web表单用户控件不会插入关于属性的生成代码,只会引用控件的类型(或文件位置)。在这种情况下,搜索和替换可能是最好的答案。在WinForms中,这是一个完全不同的蜡球,我不熟悉。因此,这个问题。 –

回答

2

正则表达式来救援!我通常所做的是打开替换文件对话框(Ctrl + Shift + H),选中使用正则表达式复选框,并用空字符串替换.+\.SomeProperty.+的实例。

请确保在之前将更改提交到存储库,因此如果出现任何错误,您可以恢复到工作状态。

+0

非常感谢!这就实现了 - 快速轻松地从所有受影响的文件中移除生成的代码。 – James

+0

@James Glad帮助。 – clearpath

0

刚刚离开它,它标记为Obsolete

2

您可以尝试使用一些重构工具,如ReSharper的。

http://www.jetbrains.com/resharper/

添加“过时”属性附加伤害,只会产生一个编译器警告,但不会删除任何代码。

3

DesignerSerializationVisibilityAttribute,尤其是DesignerSerializationVisibility.Hidden选项。

注意事项:不幸的是,您将不得不在设计模式下打开每个窗体/控件,以便可以重新生成代码(如果它没有这样做的话)。

+0

这是一个好主意!虽然它不会删除生成的代码,但我将从现在开始使用它来防止生成的代码。谢谢! – James

相关问题