相当于 system.Reflection.Assembly.GetExecutingAssembly().FullName

Equivalent of system.Reflection.Assembly.GetExecutingAssembly().FullName

目前我正在使用 UWP 平台将 Windows phone Silverlight 应用程序移植到 windows 移动设备。

在我的旧代码中,我使用函数以下列方式获取 ExecutingAssemblyName:

        public static string ExecutingAssemblyName {
        get {
            string name = System.Reflection.Assembly.GetExecutingAssembly().FullName;
            return name.Substring(0, name.IndexOf(','));
        }
    }

现在我想在 Windows 移动设备上获得相同的结果,但是下面 link 中描述的功能似乎并不都在 Windows 移动设备上。唯一的我能找到的是:

  1. System.Reflection.Assembly.equals
  2. System.Reflection.Assembly.load
  3. System.Reflection.Assembly.ReferenceEquals

现在有人知道如何得到相同的结果吗?或者我应该开始重写很多代码。

谢谢你了

要获取程序集的全名,您可以使用以下代码(如 Romasz 所述)。

this.GetType().GetTypeInfo().Assembly.FullName

在 UWP 中,所有提交到商店的应用程序都将符合 .NET Native。

The .NET Native runtime doesn't include a JIT compiler. As a result, all necessary native code must be generated in advance. A set of heuristics is used to determine what code should be generated, but these heuristics cannot cover all possible metaprogramming scenarios.

更多信息,请参考文章Reflection and .NET Native

对于你的情况,我建议你使用资源文件(Resources.resw)来管理文本资源,并将文件资源(如图像、图标)放在Assets文件夹下。