3

ここに到達すると、ユニットテストは失敗します。

var y = AppDomain.CurrentDomain
                 .GetAssemblies()
                 .Where(a => !a.GlobalAssemblyCache)
                 .SelectMany(a => a.GetExportedTypes()
                                   .Where(t => t.IsClass && typeof(ITypeRenderer).IsAssignableFrom(t)))
                 .ToArray();

しかし、デバッガーを接続してテストを実行すると、失敗しません。

私はそれが反射許可とそのすべてのジャズで何かをしなければならないと思います、何か考えはありますか?

例外は次のとおりです。

初期化メソッドMyUnitTestProject.UnitTest.Initが例外をスローしました。System.NotSupportedException:System.NotSupportedException:呼び出されたメンバーは動的アセンブリでサポートされていません。

例外は次の場所で発生します。

System.Reflection.Emit.InternalAssemblyBuilder.GetExportedTypes()

ありがとう。

4

1 に答える 1

3

エラーメッセージには、「呼び出されたメンバーは動的アセンブリでサポートされていません」と表示されます。明らかに、デバッガーの外部でテストを実行している場合、何かが原因で、テストが実行されている場所と同じAppDomainに動的アセンブリが作成されています。

同様に(うまくいけば)明らかに、IsDynamicそのようなアセンブリを除外するためのチェック(GACアセンブリを除外するのと同じ方法で)はエラーを回避するはずです。

于 2012-04-18T06:46:39.477 に答える