我想在DefaultValue属性上使用来定义我在App中编写的自定义类的默认值。该类在他的约束器中给出一个字符串。 我写了以下内容:
[DefaultValue(Type.GetType("MyClass"),"hello world")]
但是当我尝试运行此应用程序时。我给出错误:
“属性参数必须是a 常量表达式,表达式 或者数组创建表达式 属性参数类型“。
任何人都可以解释我的问题吗?
答案 0 :(得分:6)
您正在使用Type.GetType("MyClass")
,typeof(MyClass)
。
答案 1 :(得分:2)
我怀疑它是Type.GetType(“MyClass”);
你可以尝试使用typeof(MyClass),传递类型而不是字符串吗?
答案 2 :(得分:1)
Type.GetType()
是一种方法(即不是常量表达式),正如其他人所说的那样,使用typeof
。
[DefaultValue(typeof(MyClass),"Convertible String")]
修改:要启用将字符串转换为自定义类,您需要将TypeConverter与其关联,请参阅this documentation的示例部分以了解如何这样做。