传递IDictionary<,>作为属性中的参数,可能吗?

时间:2011-03-29 12:25:07

标签: c# .net

是否可以将IDictionary作为属性的参数传递: 像这样:

[My(new Dictionary<string,object> { ... }]

或者像这样:

[My(Data = new Dictionary<string,object> {...} )]

atm我正在考虑传递一个json字符串并将其转换为IDictionary<string,object>

2 个答案:

答案 0 :(得分:12)

否 - 使用属性,您必须将常量值传递给它们。 也许你可以有多个属性,暴露出两个属性。

[My(Key = "1234", Value = "1234")]
[My(Key = "4234", Value = "4234")]

当你进行反思时,你可以用这种方式建立一个字典。

答案 1 :(得分:3)

不,你会收到这个错误:

Error   20
An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type