C#有办法验证加载的汇编吗?

问题描述 投票:1回答:1

在.NET中是否有办法验证已加载的程序集,并在需要时防止加载它?

我试图使用 AsseblyLoad 事件,但似乎是吞食异常,根据 这个:

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");
}

在实际项目中,由于许可证规则,我想验证发布者。我不知道在哪里可以在加载程序集之前放入我的自定义验证代码。

c# .net assembly load
1个回答
0
投票

你可以使用 "仅反射 "加载,让你通过反射访问汇编,在正确加载前进行验证。

https:/docs.microsoft.comen-usdotnetapisystem.reflection.assembly.reflectiononlyload?view=netframework-4.8。

© www.soinside.com 2019 - 2024. All rights reserved.