C#动态加载Dll而不查找其依赖项

C#动态加载Dll而不查找其依赖项,c#,reflection,C#,Reflection,我读过这篇文章,但它对我没有帮助 我的目标是找到具有自定义属性的类。 由于我不需要任何实例或使用代码,有没有一种方法可以加载DLL文件并在代码中搜索我想要的内容,而不解决依赖性问题?查找代码。如果要获取所有应用程序域程序集类型,可以通过捕获ReflectionTypeLoadException来避免该问题: public static class AssemblyExtension { public static IEnumerable<Type> GetLoadableTy

我读过这篇文章,但它对我没有帮助

我的目标是找到具有自定义属性的类。
由于我不需要任何实例或使用代码,有没有一种方法可以加载DLL文件并在代码中搜索我想要的内容,而不解决依赖性问题?查找代码。

如果要获取所有应用程序域程序集类型,可以通过捕获
ReflectionTypeLoadException来避免该问题:

public static class AssemblyExtension
{
    public static IEnumerable<Type> GetLoadableTypes(this Assembly assembly)
    {
        if (assembly == null) throw new ArgumentNullException(nameof(assembly));
        try
        {
            return assembly.GetTypes();
        }
        catch (ReflectionTypeLoadException e)
        {
            return e.Types.Where(t => t != null);
        }
    }
}
如果要加载程序集而不加载其依赖项,请使用以下重载之一: 如本文所述:


谢谢你的回复,我甚至不知道有一篇MSDN文章描述了这种情况。
var types = (from domainAssembly in AppDomain.CurrentDomain.GetAssemblies().Where(x => !x.IsDynamic)
             from assemblyType in domainAssembly.GetLoadableTypes()
             select assemblyType);
Assembly.ReflectionOnlyLoad(/*your appropriate parameter assembly name or something else*/);