2

Assembly.GetTypes()は、ロードできないタイプがある場合にReflectionTypeLoadExceptionをスローします。

その例外には、正常にロードされたタイプをリストするTypes []プロパティと、ロードに失敗したタイプの例外をリストするLoaderExceptions[]プロパティがあります。

私の質問:LoaderExceptionsに対応する型自体を取得するにはどうすればよいですか?

編集:私は実際にロードに失敗したタイプの名前を探しています。混乱してすみません。

4

2 に答える 2

4

これは不可能です。CLR はTypeオブジェクトの作成に失敗したため、 のセットを取得しましたLoaderExceptions。ロードに失敗した Typeを説明するオブジェクトはまったくありません。Type

于 2012-04-04T15:46:46.727 に答える
0

このエラーは主に、ある場所から読み込んでいる Dll がアプリケーションまたは親アプリケーションで既に参照されている場合に発生します。Dll が既に参照されている場合は、アプリケーションのAssemblies.

foreach (var asm in AppDomain.CurrentDomain.GetAssemblies())
{
      if (asm.ManifestModule.FullyQualifiedName.EndsWith("YourDllName.dll"))
      {
            foreach (var Type in asm.GetTypes())
            {
                  // Apply your logic here
            }                
            break;
      }
}
于 2014-11-18T08:55:22.363 に答える