У меня есть сборка, которая содержит тип с именем EncryptedStrings
, и внутри него есть метод с именем DecryptString
. Я хотел удалить этот метод из типа и записать измененную сборку обратно. Я написал для него очень простой код:
var file = @"path-to-file.exe";
// load assembly
var ass = AssemblyDefinition.ReadAssembly(file);
// find the type
var type = ass.MainModule.GetType("EncryptedStrings");
// find the method in the type
var method = type.Methods.First(meth => meth.Name == "DecryptString");
// remove the method
type.Methods.Remove(method);
// write assembly back
ass.Write("fixed.exe");
Однако, когда я запускаю этот код, я получаю исключение, говорящее:
System.ArgumentException: Member 'System.String DecryptString (System.String) 'объявлен в другом модуле и должен быть импортирован
Я понятия не имею, что он хочет от меня ... Метод определен в этом модуле, так что я предполагается импортировать?
Что мне нужно сделать, чтобы исправить это и удалить метод из типа?