У меня довольно запутанный сценарий, в котором я хочу создать DynamicMethod, который присоединяется к классу в AssemblyBuilder в памяти.Динамический метод вызывает метод «GetReplacement» в моей (обычной) сборке.
Это нормально работало в .NET 2.0, но в .NET 4.0 я получаю ошибку:
MethodAccessException: Attempt by security transparent method 'DynamicClass.Max(Int32, Int32)'
to access security critical method 'xxx.GetReplacement()' failed.
Из того, что я прочитал, мой динамический метод (Макс в ошибке выше) прозрачен для безопасности, потому что сборка, к которой он присоединен (AssemblyBuilder), прозрачна.Я предполагаю, что AssemblyBuilder прозрачен, потому что это динамическая сборка.
Как мне сделать мой динамический метод критическим или сделать все возможное, чтобы предоставить ему разрешение на вызов GetReplacement?Есть несколько других методов, которые я хочу вызвать в сборке GetReplacement, поэтому исправление динамического метода было бы лучше, чем пометка GetReplacement в некотором роде.
Я немного растерялся и хотел бы помочь!