.NET中是否有一种方法可以验证加载的程序集,并在需要时阻止对其进行加载?
我试图使用AsseblyLoad
事件,但是根据this,它似乎正在吞噬异常:
static void Main(string[] args)
{
AppDomain.CurrentDomain.AssemblyLoad += OnAssemblyLoaded;
var asm = Assembly.LoadFrom(@"path\to\assembly.dll");
Console.WriteLine($"loaded {asm.GetName().Name}");
Console.ReadKey();
}
private static void OnAssemblyLoaded(object sender, AssemblyLoadEventArgs args)
{
// DO CHECKs here
throw new Exception("invalid assebly");
}
在实际项目中,由于许可规则,我想验证发布者。我没有在加载程序集之前可以放置自定义验证代码的地方。
答案 0 :(得分:0)
您可以使用“仅反射”加载,以允许您在正确加载之前通过反射访问部件以进行验证。