属性无效时如何处理?

时间:2013-05-31 13:00:17

标签: c# exception constructor attributes

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

0 个答案:

没有答案