我有一个属性。让我们称之为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 的布尔值吗?