编程语言
首页 > 编程语言> > c#-如何判断库代码中是否允许代码访问安全性

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