メモリ内の AssemblyBuilder のクラスにアタッチされた DynamicMethod を作成したいというかなり複雑なシナリオがあります。動的メソッドは、私の(通常の)アセンブリでメソッド「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.
私が読んだことから、動的メソッド (上記のエラーの Max) は、それがアタッチされているアセンブリ (AssemblyBuilder) が透過的であるため、セキュリティ透過的です。AssemblyBuilder は動的アセンブリであるため、透過的だと思います。
動的メソッドをクリティカルにする方法、または GetReplacement を呼び出す権限を付与するために必要なことを行う方法は? GetReplacement のアセンブリで呼び出したいメソッドが他にもいくつかあるので、何らかの方法で GetReplacement をマークするよりも、動的メソッドを修正する方がよいでしょう。
私は少し道に迷っており、何か助けていただければ幸いです。