C# 在程序集中获取字符串而不加载它

C# 在程序集中获取字符串而不加载它,c#,reflection,.net-assembly,C#,Reflection,.net Assembly,我正在使用以下命令手动加载程序集: Assembly _assembly = Assembly.ReflectionOnlyLoadFrom(PathToDllAssembly); 我可以检查类和/或方法的名称 为了访问方法,我必须加载程序集: Assembly _assembly = Assembly.LoadFile(PathToDllAssembly); 但是可以在程序集中获取字符串值,而无需实际加载它或在仅反射的上下文中加载它? 编辑: 我这样问是因为在我的程序集中我有key字符串,

我正在使用以下命令手动加载程序集:

Assembly _assembly = Assembly.ReflectionOnlyLoadFrom(PathToDllAssembly);
我可以检查类和/或方法的名称

为了访问方法,我必须加载程序集:

Assembly _assembly = Assembly.LoadFile(PathToDllAssembly);
但是可以在程序集中获取
字符串
值,而无需实际加载它或在仅反射的上下文中加载它?

编辑: 我这样问是因为在我的程序集中我有
key
字符串,它是一个加密字符串,我只想在解密的
key
等于字符串时加载该程序集


这是我试图实现的一种小保护。

基于
ReflectionOnlyLoadFrom

无法从已加载到中的程序集执行代码 仅反射上下文。要执行代码,请使用加载程序集 LoadFile方法

访问字段或属性的值或调用方法就是执行代码。因此,您必须使用
LoadFile


至于您的安全措施,也许您应该查看以正确验证目标程序集的真实性。

基于
ReflectionOnlyLoadFrom

无法从已加载到中的程序集执行代码 仅反射上下文。要执行代码,请使用加载程序集 LoadFile方法

访问字段或属性的值或调用方法就是执行代码。因此,您必须使用
LoadFile


至于您的安全措施,也许您应该查看以正确验证目标程序集的真实性。

如果您想要作为类的一部分的字符串,则必须加载给定的程序集。您可以做的一件事是将程序集加载到中,而无需任何权限(
新建PermissionSet(PermissionState.None);
),读取字符串,然后如果正确,则将其加载到主AppDomain中。如果需要作为类的一部分的字符串,则必须加载给定的程序集。可以做的一件事是将程序集加载到没有任何权限的中(
新建PermissionSet(PermissionState.None);
),读取字符串,然后,如果正确,将其加载到主AppDomain中。