カスタム属性が適用されている(単体テストプロジェクト内の)参照されているすべてのアセンブリを取得することは可能ですか?正常に動作するアプリケーションで次のコードを使用します。
var assemblies = System.Web.Compilation.BuildManager.GetReferencedAssemblies().Cast<Assembly>().Where(a => a.GetCustomAttributes(false).OfType<AssemblyCategoryAttribute>().Any()).ToList();
ただし、System.Web.Compilation.BuildManagerがテストプロジェクトで機能しないため、次のことを試しました。
Assembly.GetExecutingAssembly().GetReferencedAssemblies().Select(a => Assembly.ReflectionOnlyLoad(a.FullName).Where(a => a.GetCustomAttributes(false).OfType<AssemblyCategoryAttribute>().Any()).ToList();
しかし、これはエラーを投げました:
ReflectionOnlyGetTypeを介してロードされたタイプのカスタム属性を反映することは違法です(Assembly.ReflectionOnlyを参照)。代わりにCustomAttributeDataを使用してください。
誰かがこれを行う方法を教えてくれたら幸いです。ありがとう