0
我想創建一個羅斯林代碼修復,改變歸結如下代碼:Roslyn Code Fix可以在多個獨立呼叫站點上運行嗎?
public class CommandHandler
{
[Command("Cmd1")]
public void Foo()
{
// do something
}
[Command("Cmd2")]
public void Bar()
{
// do something
}
}
這樣:
public class CommandHandler
{
public void Foo()
{
// do something
}
public void Bar()
{
// do something
}
public void Execute(string command)
{
switch(command)
{
case "Cmd1":
Foo();
break;
case "Cmd2":
Bar();
break;
}
}
}
的主要要求是:
- 簽名因爲重構是屬於
[Command]
屬性的任何方法。 - 在一個類中可以有多個這樣的方法。
- 合成的
Execute()
方法必須保留現有案例並添加新案例。
是否有可能創建這樣的重構,以便我可以要求它一次性修復項目中的所有實例?這是一個可行的問題,以幫助我避免陷入死衚衕,如果有的話。
一兩件事你可以做的是檢查每一個方法,請參閱如果它具有該屬性,並且該屬性確實存在:請參閱您是否已經有了Execute()方法。如果你這樣做,你可以添加案例;如果您不:您創建方法並添加案例。 –