枚举值 return 空数组的 GetCustomAttributes
GetCustomAttributes for an enum value return an empty Array
我目前正在努力将 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
}
当我尝试获取任何枚举值的属性时,它总是 returns 一个空数组。我使用以下代码:
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;
}
GetCustomAttributes总是returns一个空数组,所以attributes.Length总是0,所以函数returns null;
在 Windows 10 中有什么改变阻止了它的工作吗?
非常感谢!
我终于找到了解决问题的方法。
我的解决方案包含 C++ 项目,所以我激活了 .Net Native,就像我看到的关于将 Windows 8.1 应用程序迁移到 Windows 10 UWP 应用程序的每个教程中所说的那样,没问题,但这样做会将 属性 UseDotNetNativeToolChain 设置为 true,这会导致问题。要解决这个问题,只需在错误的项目文件中将其设置为 false,它就会重新开始工作! .Net Native 仍然有效!
希望对大家有所帮助!
我目前正在努力将 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
}
当我尝试获取任何枚举值的属性时,它总是 returns 一个空数组。我使用以下代码:
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;
}
GetCustomAttributes总是returns一个空数组,所以attributes.Length总是0,所以函数returns null;
在 Windows 10 中有什么改变阻止了它的工作吗?
非常感谢!
我终于找到了解决问题的方法。
我的解决方案包含 C++ 项目,所以我激活了 .Net Native,就像我看到的关于将 Windows 8.1 应用程序迁移到 Windows 10 UWP 应用程序的每个教程中所说的那样,没问题,但这样做会将 属性 UseDotNetNativeToolChain 设置为 true,这会导致问题。要解决这个问题,只需在错误的项目文件中将其设置为 false,它就会重新开始工作! .Net Native 仍然有效!
希望对大家有所帮助!