gpt4 book ai didi

c# - 枚举值的 GetCustomAttributes 返回一个空数组

转载 作者:太空狗 更新时间:2023-10-29 23:44:52 26 4
gpt4 key购买 nike

我目前正在努力将 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
}

当我尝试获取任何枚举值的属性时,它总是返回一个空数组。我使用以下代码:

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总是返回一个空数组,所以attributes.Length总是0,所以函数返回null;

Windows 10 中是否有某些更改阻止了它的工作?

非常感谢!

最佳答案

我终于找到了解决问题的方法。

我的解决方案包含 C++ 项目,所以我激活了 .Net Native,就像我看到的关于将 Windows 8.1 应用程序迁移到 Windows 10 UWP 应用程序的每个教程中所说的那样,没关系,但这样做会设置属性 UseDotNetNativeToolChain为真,这会导致问题。要解决这个问题,只需在错误的项目文件中将其设置为 false,它就会重新开始工作! .Net Native 仍然有效!

希望对大家有帮助!

关于c# - 枚举值的 GetCustomAttributes 返回一个空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30467354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com