2017-10-16 1 views
1

웹 API2 응용 프로그램에서 작업 중이며 클라이언트가 조건부로 전송 한 DTO의 유효성을 검사해야합니다. 현재 속성 기반 유효성 검사를 사용하고 있습니다. 내가 가진 디자인 IDtoValidatorIsValid() 데이터 유효성을 검사하는 방법이있는 인터페이스가 있습니다. 인터페이스를 구현하는 각 클래스가 자체 오류 메시지를 넣을 수 있도록 인터페이스 자체에있는 사용자가 읽을 수있는 형식으로 오류 메시지를 제공해야합니다. 작업 방법 : 작업 방법의 유효성을 검사DTO를 확인하고 오류 메시지가 나타납니다.

public interface IDtoValidator 
{ 
    bool IsValid(); 
} 

public class FormResponseDto : BaseResponseDto, IDtoValidator 
{ 

    public bool IsValid() 
    { ... some logic to validate the model...} 
} 

내 생각 :

public async Task<IHttpActionResult> MyMethod(FormResponseDto dto) 
    { 
     if(dto.IsValid()) 
      return BadRequest(dto.GetErrorMessage()); 
    } 

이에 대한 깨끗한 디자인을 제안하십시오 여기

내 클래스입니다. 문제는 isValid() 메서드에서 인터페이스의 다른 속성 인 errorMessage를 설정해야한다는 것입니다. 개인적으로 만 설정할 필요가있는 경우 인터페이스에서 수행 할 수 없습니다.

답변

1

당신은

String GetError()

또는 2 프로토 타입에서

List<String> GetErrors()

처럼 인터페이스에 게터를 노출 할 수 있습니다, 당신은 그 오류 때문에 불변의 수집 \의 목록을 반환 할 수 있습니다 (들)을 목록에 외부 적으로 추가 할 수는 없습니다.

관련 문제