我正在构建一个应用程序,它将加载不受信任的程序集以进行检查(即检索程序集的全名)。出于安全原因,我试图想出一种方法,可以编写这些程序集,以便在加载时执行代码。我还没有用方法编写代码,但是想把它扔出去看看是否有人可以。
我知道我可以将这些程序集加载到一个不受信任的应用程序域中,有效地阻止他们做任何事情,但我想避免复杂性,如果它不需要。
具体来说,我将调用Assembly.Load
和<LoadedAssebmly>.FullName
。也许有更好的方法来加载程序集名称而不使用Assembly
类?
谢谢, 马特
答案 0 :(得分:1)
首先,有AssemblyName
类。它允许您在不加载程序集的情况下查找程序集的名称。其次,您可以使用Assembly.ReflectionOnlyLoad
加载程序集,{{1}}使用仅反射上下文 - 不能从这样的程序集执行代码。
答案 1 :(得分:1)
是的,有可能:.Net: Running code when assembly is loaded
我建议你使用一种方法来检查装配,但不加载它,即Mono.Cecil