После того, как я немного поигрался с этим кодом, я считаю, что нашел причину ошибки.
Похоже, что при использовании отражения .net попытается проверить сигнатуры методов перед выполнением этих методов.(это происходит, когда вы загружаете метод, содержащий недопустимый вызов метода).Поэтому я не смог зайти в Role.cs
, потому что .net попытался бы проверить недопустимую сигнатуру метода, определенную в методе, который я вызывал.Закомментировав этот недопустимый вызов метода и перекомпилировав dll, я смог успешно войти в код Role.cs
.
Суть в следующем:
AFAIK, вы не можете иметь недопустимыйподпись метода в .dll, которую вы вызываете с помощью отражения.Когда код, использующий недопустимый метод, загружен, .net найдет ошибку и выдаст исключение, , даже если этот код никогда не будет выполнен (в операторе if, который никогда не вернет true).