c#attribute参数如何必传
时间: 2023-11-14 09:15:09 浏览: 107
在C#中,我们可以通过在Attribute的构造函数中添加参数来指定必传参数,以下是一个示例:
```csharp
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class RequiredAttribute : Attribute
{
public string ErrorMessage { get; set; }
public RequiredAttribute(string errorMessage)
{
if (string.IsNullOrEmpty(errorMessage))
{
throw new ArgumentException("errorMessage should not be null or empty.", nameof(errorMessage));
}
ErrorMessage = errorMessage;
}
}
public class User
{
[Required("Name is required.")]
public string Name { get; set; }
[Required("Age is required.")]
public int Age { get; set; }
public string Email { get; set; }
}
```
在上面的代码中,我们在RequiredAttribute的构造函数中添加了一个参数errorMessage,并在构造函数中检查了该参数是否为null或空字符串。在User类中,我们在Name和Age字段上标记了该Attribute,并在Attribute的实例化时必须传入errorMessage参数。如果我们在实例化RequiredAttribute时没有传递errorMessage参数,就会抛出ArgumentException异常。
这样,在使用RequiredAttribute时,我们就可以确保必传参数被正确传递。
阅读全文