2013-04-16 141 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

相關問題