mga*_*ant 5 c# enums custom-attributes win-universal-app windows-10
我正在努力将Windows 8.1通用应用程序升级到Windows 10 UWP应用程序.在我的Windows 10 UWP应用程序中,有一部分代码在之前完全无法正常工作.
我有一个看起来像这样的枚举:
public enum EStaticFile
{
[StringValue("Path of a file")]
CONFIG_FILE_1,
[StringValue("Path of a file")]
CONFIG_FILE_2
}
Run Code Online (Sandbox Code Playgroud)
当我尝试获取任何枚举值的属性时,它总是返回一个空数组.我使用以下代码:
public static StringValue GetStringValueAttribute(this Enum aEnumValue)
{
Type type = aEnumValue.GetType();
FieldInfo fieldInfo = type.GetRuntimeField(aEnumValue.ToString());
StringValue[] attributes = fieldInfo.GetCustomAttributes(typeof(StringValue), false) as StringValue[];
if (attributes.Length > 0)
{
return attributes[0];
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
GetCustomAttributes总是返回一个空数组,所以attributes.Length总是0,所以函数返回null;
在Windows 10中有什么变化阻止它工作?
非常感谢!
我终于找到了解决我的问题的方法。
我的解决方案包含 C++ 项目,因此我激活了 .Net Native,就像我看到的有关将 Windows 8.1 应用程序迁移到 Windows 10 UWP 应用程序的每个教程中所说的那样,这没问题,但这样做会将属性 UseDotNetNativeToolChain 设置为 true,这会导致问题。要解决该问题,只需将有问题的项目文件中的所有位置设置为 false,它将再次开始工作!而且 .Net Native 仍然有效!
希望它能帮助别人!
| 归档时间: |
|
| 查看次数: |
645 次 |
| 最近记录: |