我有一个在本地程序集和当前目录中执行搜索的方法。它正在根据所提供的名称(反射)查找类。然而,我现在只想将我正在查找的类/dll加载到内存中,而不是将它们全部加载并从中选择我想要的。有人告诉我,marshalbyrefobject可以用来做这件事。下面是我目前使用的代码
解决方案将是创建2个应用程序域,并让其中一个加载所有的组装,并进行检查,然后卸载应用程序域,尽管我不确定如何去做。
发布于 2013-12-06 22:34:38
据我有限的了解,您可以通过预先使用程序集类查询程序集来避免加载程序集。
完整的工作模型将如下所示:
1-通过类收集信息
程序集文件:
Assembly assembly = Assembly.ReflectionOnlyLoadFrom(fileName);本地程序集:
Assembly myAssembly = Assembly.GetExecutingAssembly();2-遍历每个程序集引用上出现的类
Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
Console.WriteLine(type.FullName);
}3-选择要使用的程序集后,Load将其加载到应用程序域中
Assembly assembly = Assembly.Load(fullAssemblyName);或
Assembly assembly = Assembly.LoadFrom(fileName);示例抄袭自下面的帖子,所以如果你觉得这些回复对解决你的问题做出了贡献,请随时对那里的回复进行提升!
https://stackoverflow.com/questions/20425535
复制相似问题