加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 无法从我的Silverlight应用程序调用Assembly.GetName()

发布时间:2020-12-15 17:42:13 所属栏目:百科 来源:网络整理
导读:我想在我的应用程序中显示我的应用程序版本号,最简单的方法是使用程序集的版本号. var assembly = System.Reflection.Assembly.GetExecutingAssembly();var name = assembly.GetName();return String.Format("Version {0}.{1}",name.Version.Major,name.Vers
我想在我的应用程序中显示我的应用程序版本号,最简单的方法是使用程序集的版本号.
var assembly = System.Reflection.Assembly.GetExecutingAssembly();
var name = assembly.GetName();
return String.Format("Version {0}.{1}",name.Version.Major,name.Version.Minor);

我可以毫无问题地获得正在执行的汇编,但是对GetName()的调用会返回带有此消息的MethodAccessException

Attempt by security transparent method ‘MainPage..ctor()’ to access security critical method ‘System.Reflection.Assembly.GetName()’ failed.

为什么会发生这种情况,有什么我可以做的,如果没有,还有其他方法来检索汇编版本吗?

解决方法

Assembly.GetName用SecurityCriticalAttribute属性标记,尝试使用GetCallingAssembly().FullName并从中删除版本信息.

Do not use this member in your application. If you do,your code will
throw a MethodAccessException. This member is security-critical,which
restricts it to internal use by the .NET Framework for Silverlight
class library. [SECURITY CRITICAL]

来自:http://msdn.microsoft.com/en-us/library/9w2wdeze(VS.95).aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读