标签:code-access-security c net-4-0
在.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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。