假设我有能够被设置为一个System.Object属性说:c#:将非常量值设置为属性的解决方法?
[AttributeUsage(AttributeTargets.Property)]
class MyAttrAttribute : Attribute {
public object ThisOne { get; set; }
}
我想获得的这个相同的结果(不编译):
class AttrTarget {
[(MyAttr ThisOne = new MyClass())]
public MyClass Thing { get; set; }
}
有一种方法可以在不使用反射的情况下实现相同的结果吗?
问候,贾科莫
你不能用属性来做到这一点。在编译时必须知道属性值。 –
@ sa_ddam213 ...或必须从编译时已知的常量值*可检索*;例如,某些内置属性支持翻译之类的继承 - 但“关键”是不变的,即使观察到的值在运行时可能会有所不同。 –
你想做什么?有可能有更好的方法来实现它? – SWeko