带属性的快速ArgumentNullException。有可能的?

时间:2010-05-17 03:28:08

标签: c# attributes methods

有没有快速的方法来验证空参数 通过属性或什么?

转换它:

public void Method(type arg1,type arg2,type arg3)
{
     if (arg1== null) throw new ArgumentNullException("arg1");
     if (arg2== null) throw new ArgumentNullException("arg2");
     if (arg3== null) throw new ArgumentNullException("arg3");
     //Business Logic
}

这样的事情:

[VerifyNullArgument("arg1","arg2","arg3")]
public void Method(type arg1,type arg2,type arg3)
{
      //Business Logic
}

想法?谢谢你们。

3 个答案:

答案 0 :(得分:4)

.NET 4中内置了Code Contracts。这可能就像你得到的那样接近。如果你选择走这条路,DevLabs会有更多的信息。

答案 1 :(得分:3)

您正在寻找PostSharp

答案 2 :(得分:-1)

不是属性,而是类似的想法:

class SomeClass
{
    public static void VerifyNullArgument(params object objects)
    {
        if (objects == null)
        {
            throw new ArgumentNullException("objects");
        }

        for (int index = 0; index < objects.Lenght; index++)
        {
            if (objects[index] == null)
            {
                throw new ArgumentException("Element is null at index " + index,
                    "objects");
            }
        }
    }
}

然后在你的示例方法中

public void Method(type arg1,type arg2,type arg3)
{
    SomeClass.VerifyNullArgument(arg1, arg2, arg3);
    //Business Logic
}