2014-02-19 40 views
0

我想重命名方法中定義的變量。如何在C#中使用Mono.Cecil v0.9.5重命名方法中的變量

想我的方法是:

public void PrintWelcome() { 
    StringBuilder myMessageBuilder = new StringBuilder(); 
    int linesCount = 10; 
    for (int i = 0; i < linesCount; i++) { 
     myMessageBuilder.Append(Console.ReadLine()); 
     myMessageBuilder.Append(Environment.NewLine); 
    } 

    Console.Write(myMessageBuilder.ToString()); 
} 

然後與Mono.Cecil能v 0.9.5其他項目我打開我的組裝,然後 我想通過這些代碼重新命名myMessageBuilderlinesCount

foreach (MethodDefinition methodDef in typeDef.Methods) { 
    if (methodDef.HasBody) { 
     foreach (var variableDef in methodDef.Body.Variables) { 
      variableDef.Name = GetRandomName(); 
     }          
    } 

但我的變量名稱沒有改變,當我打印variableDef.Name它打印" "

任何人都可以幫我重命名我的方法變量嗎?

+1

你爲什麼要這麼做? – Anri

回答

1

變量不包含名稱一旦編譯。像這樣的信息存儲在pdb文件中,而不是程序集本身。

相關問題