我有以下情况:
/* Attribute to be filled */
public class Flower
{
public FlowerType Type { get; set; }
public string Value { get; set; }
}
public enum FlowerType
{
Rose,
Daisy,
Tulip
}
[AttributeUsage(AttributeTargets.Class)]
public sealed class FlowerAttribute : Attribute
{
public string FlowerValue { get; }
public FlowerAttribute(string flowerValue)
{
FlowerValue = flowerValue;
}
}
我想要实现的是一种根据运行时为类Flower
提供属性的方法,这意味着如果将花朵实例化为Rose
类型,则该属性位于Flower
将FlowerValue
设置为"Rose"
。我能以某种方式实现吗?一如既往地感谢您!
答案 0 :(得分:3)
我能以某种方式实现这一目标吗?
不。属性参数总是在编译时决定的-这就是为什么它们必须是编译时常量的原因。这些值被烘焙到IL中。
目前尚不清楚更大的目标是什么,但是任何 dynamic 都不太可能适合属性。