gpt4 book ai didi

c# - 如何判断库代码中是否允许代码访问安全

转载 作者:行者123 更新时间:2023-11-30 16:34:18 25 4
gpt4 key购买 nike

在 .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.MajorEnvironment.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 上实现。

关于c# - 如何判断库代码中是否允许代码访问安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2525077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com