c#-如何判断库代码中是否允许代码访问安全性
作者:互联网
在.NET 4中,不建议使用代码访问安全性(CAS).每当您调用隐式使用该方法的方法时,该方法都会失败,并显示NotSupportedException,可以使用configuration switch进行解析,使其退回到原来的行为.
我们有一个在.NET 3.5和.NET 4中都使用的通用库,因此我们需要能够确定是否应该使用CAS方法.
例如,在.NET 3.5中,我应该调用:
Assembly.Load(string, Evidence);
而在.NET 4中我想打电话
Assembly.Load(string);
调用Load(string,Evidence)会引发NotSupportedException.
当然可以,但是我想知道是否有更好的方法:
try
{
asm = Assembly.Load(someString, someEvidence);
}
catch(NotSupportedException)
{
asm = Assembly.Load(someString);
}
解决方法:
嗨,
使用Environment.Version.Major和Environment.Version.Minor应该可以解决此问题.
Version v = Environment.Version;
if (Environment.Version.Major <= 3)
{
//DO 3.5 here
}
else if (Environment.Version.Major >= 4)
{
//DO 4 here
}
希望这可以帮助.
编辑:更改条件以假定相同的CAS将在.NET的将来版本中实现.
标签:code-access-security,c,net-4-0 来源: https://codeday.me/bug/20191210/2099739.html