Как переименовать переменные в методе Mono.Cecil v0.9.5 в C#

Я хочу переименовать переменные, определенные в методе.

предположим, что мой метод:

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 я открываю свою сборку, а затем хочу переименовать myMessageBuilder и linesCount по этим кодам:

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

но имя моей переменной не изменилось, и когда я напечатал variableDef.Name, он напечатал " ".

Может ли кто-нибудь помочь мне переименовать переменные моего метода?


person AliOsat Mostafavi    schedule 19.02.2014    source источник
comment
С какой стати ты хочешь это сделать?   -  person Anri    schedule 20.02.2014


Ответы (1)


Переменные не имеют имя имен после компиляции. Подобная информация хранится в файле pdb, а не в самой сборке.

person Banksy    schedule 19.02.2014