gpt4 book ai didi

c# - 在运行时将 TypeConverter 属性添加到枚举

转载 作者:太空狗 更新时间:2023-10-29 21:27:21 24 4
gpt4 key购买 nike

在 C#/WPF 应用程序中,我向一些枚举添加了 TypeConverter 属性,以便显示本地化文本而不是枚举的文本:

[TypeConverter(typeof(LocalizedEnumTypeConverter))]
public enum MyEnum
{
EnumVal1 = 0,
EnumVal2 = 1,
EnumVal3 = 2,
}

我已经实现了 LocalizedEnumTypeConverter 来执行这个任务。

当我尝试对另一个程序集中定义的枚举使用相同的方法时,问题就出现了,它无法访问 LocalizedEnumTypeConverter,并且与其他应用程序共享(也就是说,我无法添加对程序集的引用其中定义了 LocalizedEnumTypeConverter)。

有没有办法在运行时添加 TypeConverter 属性?这样我就可以在没有 TypeConverter 属性的情况下将枚举保留在另一个程序集中,然后在运行时将其添加到我的应用程序中。

最佳答案

这可以使用 TypeDescriptor 类来完成 https://msdn.microsoft.com/en-us/library/system.componentmodel.typedescriptor.aspx .请引用以下示例。

    Attribute[] newAttributes = new Attribute[1];
newAttributes[0] = new TypeConverterAttribute(typeof(LocalizedEnumTypeConverter));

TypeDescriptor.AddAttributes(typeof(MyEnum), newAttributes);

关于c# - 在运行时将 TypeConverter 属性添加到枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29673882/

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