gpt4 book ai didi

c# - 枚举的参数化描述属性

转载 作者:行者123 更新时间:2023-11-30 23:03:33 27 4
gpt4 key购买 nike

我有一个枚举,其中提供了业务子代码。不幸的是,我意识到枚举值的描述​​因用户而异。

这是我在一个完美世界中试图实现的目标,但我知道不能在运行时更改属性值。

public enum BusinessSubcodesEnum
{
[Representation(@"Cannot charge customers basket. No default currency set for user: {0}.")]
DefaultCurrencyNotSet = 18
}

值得注意的是,有成百上千的子代码,例如上面的这个,所以我真的很想避免使用成百上千的带有 BusinessCode 和 Description 字段的类。我怎样才能克服这个?抽象/通用类?

最佳答案

据我所知,您只能将编译时常量用作任何属性的值。

虽然我在官方文档中找不到,但我确实找到了支持这一说法的证据 - 来自 Applying Attributes Microsoft 文档中的页面:

The attribute is emitted into metadata when you compile your code

来自 Extending Metadata Using Attributes页:

Attributes allow you to place extra descriptive information into metadata that can be extracted using runtime reflection services. The compiler creates attributes when you declare instances of special classes that derive from System.Attribute.

但是,您可以使用像 Dictionary<BusinessSubcodesEnum, string> 这样简单的东西存储 enum成员描述,当然,运行时更改没有问题。

关于c# - 枚举的参数化描述属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49881350/

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