繁体   English   中英

使用属性作为属性参数

[英]Using a property as an attribute argument

我编写了一个自定义信用卡验证属性,该属性检查CardNumber属性对于特定的卡类型(同一类中的另一个属性)是否有效

[CardValidationBinCheck(this.CardType, 
                        ErrorMessage = "CreditCardNumberDoesNotMatchCardType")]
public string CardNumber
{
 ...
}

由于Studio抱怨属性参数必须是常量,typeof表达式或属性参数类型(?)的数组创建表达式,因此无法编译此代码。

无论如何,我可以传递cirvumvent this并将我的this.CardType传递给属性吗?

善良,

不幸的是没有。 即使IL允许属性值成为成员引用令牌(例如,有效地是PropertyInfo ),也没有C#运算符为您提供1 您可以将其作为字符串文字传递,然后使用反射来获取PropertyInfo 丑陋而脆弱,但可能是最接近的。


1这是一个众所周知的功能请求,可能称为“ infoof”运算符。 尽管没有任何迹象表明它正在实施。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM