我有一个UserDto用作两种不同服务方法中的请求dto。 一个叫做Create,另一个叫做Update。
[OperationContract]
[FaultContract(typeof(ValidationFault))]
int Create(UserDto request);
[OperationContract]
[FaultContract(typeof(ValidationFault))]
void Update(UserDto request);
为简洁起见,我们假设以下UserDto。现在,当调用服务方法Create时,我希望根据验证器属性验证UserName和EmailAddress,并且它按预期工作。但是在Update的情况下,我只希望验证EmailAddress,不应该进行UserName验证。有没有办法做到这一点?
我不想写另一个dto,因为有很多用例需要UserdtD,我不想在多个地方重复同样的事情。
[DataContract]
Public Class UserDto {
[DataMember]
public int UserID;
[DataMember]
[NotNullValidator]
public string UserName;
[DataMember]
[NotNullValidator]
public string EmailAddress;
}
答案 0 :(得分:0)
据我所知,[NotNullValidator]
方法无法关闭UserDto
上的Updat
。但你可以通过这样做来缩小重复:
[DataContract]
Public Class UserUpdateDto : UserDto {
[DataMember]
public new string EmailAddress;
}
void Update(UserUpdateDto request);