我有一个属性。我们称之为SomeAttribute
。
理想情况下,它将被定义为:
public class SomeAttribute : Attribute
{
public MyType[] MyObjects { get; set; }
public SomeAttribute(params MyType[] parameters)
{
MyObject = parameters
}
}
但是,由于属性的限制,它的定义如下:
public class SomeAttribute : Attribute
{
public MyType[] MyObjects { get; set; }
public SomeAttribute(params string[] parameters)
{
MyObject = parameters.DoConvert(); //basically convert them to a MyType[]
}
}
但是,如果字符串无效,我认为我应该抛出异常。但我认为“属性是特殊的,我认为异常必须有些不同......”。然后我发现了这个:http://lostechies.com/jimmybogard/2008/11/23/beware-exceptions-in-attribute-constructors/。 基本上,它说“在属性构造函数中抛出异常并不是一个好主意”。
那我该怎么办?我应该抛出异常吗?如果属性无效,我应该添加一个返回true的bool吗?