什么是属性的替代品?

Fre*_*ood 5 c# reflection attributes annotations

属性有助于我们使用类依赖值而不是实例,它们可以帮助我们携带一些与我们的类没有强关系的值.但我发现了一些属性限制.我们无法在运行时更改这些值.所以我正在寻找一种方法来使用类似的属性概念,因为我们已经看到许多示例配置类由流畅的apis而不是属性.你知道这样一个现成的图书馆吗?使用属性概念避免属性限制的替代方法是什么?

Mar*_*ell 3

实际上,在某些情况下,您可以在运行时调整属性 - 例如通过TypeDescriptor- 但这只会影响 ComponentModel 的使用,而不影响反射的使用。您还可以编写属性本身来执行诸如出于 i18n 目的进行 resx 查找之类的操作。

但其他选择:

  • 可能是静态属性,可能遵循命名约定
  • 一个单独的对象模型,讨论类型 - 元模型,可以这么说
  • 配置文件或类似文件

任何一个都可以;哪个最好取决于您的想法。