У меня возникли проблемы со статическими конструкторами с моим проектом. Мне нужно добавить статический конструктор к типу "", чтобы вызвать метод дешифрования ресурсов.
Ниже в gif вы увидите проблему, с которой я сталкиваюсь.
Я также включу фрагмент кода.
Код для создания cctor:
MethodDefinition method = new MethodDefinition(
".cctor",
Mono.Cecil.MethodAttributes.Private
| Mono.Cecil.MethodAttributes.Static
| Mono.Cecil.MethodAttributes.HideBySig
| Mono.Cecil.MethodAttributes.SpecialName
| Mono.Cecil.MethodAttributes.RTSpecialName,
mod.Import(typeof(void))
);
Я также попытался изменить атрибуты так же, как и Yano. Это почему-то никогда не срабатывает. Под "works" я имею в виду обнаружить его как статический конструктор в DotNet Resolver.
Вот еще информация о реальном исходе и ожидаемом результате.
У меня нет ResolveEventHandler, прикрепленного к моей точке входа. Я прикреплен к приложению, которое запутывается, и оно находится в статическом конструкторе типа "", который выполняется до того, как вызывается даже точка входа.
Ресурсы приложений были зашифрованы с помощью AES и не признаны действительными ресурсами с помощью решения dotnet или других декомпиляторов. Я просто спрашиваю, почему событие не запускается, поскольку оно должно запускаться, когда ресурс недействителен или отсутствует. Как вы можете видеть в примере, сообщение должно появляться до запуска приложения, но оно никогда не выполняется (строковое шифрование шифрует строки, поэтому его немного сложно увидеть там строку).
Любая помощь приветствуется.