有没有办法将非常量复数或原始值传递给属性?
public class SomeClass
{
private SomeOtherClass _someOtherClass = new SomeOtherClass();
private int _somePrimitiveVariable = CalculateSomeValue();
[MyAttribute(InputValue = _someOtherClass)
public void MyMethod()
{
//Some stuff
}
//Or can it be like this?
[MyAttribute(InputValue = _somePrimitiveVariable)
public void MyMethod()
{
//Some stuff
}
}
答案 0 :(得分:0)
属性在编译时解析,因此说“不”的评论大多是正确的。
但是,如果您无法重新设计,那么解决方法有限。如果这是您希望设置的通用属性(将应用于属性的每个用户),您最好的选择可能是在代码中使用初始化方法调用属性的配置方法。这看起来与Can C# Attributes access the Target Class?模糊相似。丑陋,但可能在特定情况下工作。