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

标签 c# silverlight reflection version methodaccessexception

我想在我的应用程序中显示我的应用程序版本号,最简单的方法是使用程序集的版本号。

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.

为什么会发生这种情况,我能做些什么吗?如果不能,还有其他方法可以检索程序集版本吗?

最佳答案

我从 Stackoverflow ( Getting runtime version of a Silverlight assembly ) 得到这个 ... 对我有用:

    public static string GetVersion()
    {
        string versionNumber = ParseVersionNumber(Assembly.GetExecutingAssembly()).ToString();
        return versionNumber;
    }

    private static Version ParseVersionNumber(Assembly assembly)
    {
        AssemblyName assemblyName = new AssemblyName(assembly.FullName);
        return assemblyName.Version;
    }

关于c# - 无法从我的 Silverlight 应用程序调用 Assembly.GetName(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7925141/

相关文章:

c# - 获取 FrameworkElement 边界矩形的坐标

java-反射: How to Override private static abstract inner class method?

c# - Webservice - 线程与异步方法调用

c# - 操作运行时异步取消

javascript - 如何创建 "image building"效果

javascript - REST API 的思考

java - 从类中获取接口(interface)注释方法

c# - 在 C# 中从 ATR 确定设施代码和卡号

c# - 如何选择数据表中不等于某物的所有东西?

c# - 多 Silverlight 数据绑定(bind)