0

그래서 내가 좋아하는 내 메타 데이터의 일부를 검증 할 다음RIA 서비스 검증하기 위해

internal sealed class Metadata 
    { 
     [Key] 
     [ReadOnly(true)] 
     public int Id { get; set; } 

     [Required] 
     public string Name { get; set; } 

     [Required] 
     public string CountryCode { get; set; } 

     [CustomValidation(typeof(PCNValidator), "SetNumber")] 
     public string Number { get; set; } 
    } 

나는 당신이 여기에서 볼 수 있듯이 Number 속성을 검증하는 몇 가지 코드를 가지고 있지만, 나는 몇 가지의 다른 필수 속성이 필요합니다 속성의 첫 번째 발사.

어떻게하면됩니까?

답변

0

내가 알 수있는 한이 질문에 대한 대답은 아니오입니다. 속성 수준의 유효성 검사에서 주문을 말할 방법이 없습니다.

그렇기 때문에, 모든 Required 속성은 다른 것들보다 먼저 확인됩니다.

내가 원하는 것은 클래스의 형식 검사기를 추가하는 것이 었습니다. 형식 유효성 검사기는 항상 속성 검사기를 실행 한 후에 발생합니다.

여기 내 코드입니다 :

[MetadataType(typeof(PCN.Metadata))] 
[CustomValidation(typeof(PCNValidator), "ValidateInsert")] 
public partial class PCN : IValidate 
{ 
    internal sealed class Metadata 
    { 
     [Key] 
     [ReadOnly(true)] 
     public int Id { get; set; } 

     [Required(AllowEmptyStrings=false)] 
     public string Name { get; set; } 

     [Required] 
     public string CountryCode { get; set; } 
    } 
} 
0

name 및 countryCode가 완료 될 때까지 PCNValidator를 성공으로 만들 수 있습니다. 그 조건이 충족되면 Number에 대한 나머지 유효성 검사를 수행 할 수 있습니다. 훌륭한 해결책은 아니지만 주문 요구 사항을 고려합니다.

+0

내가 그걸 어떻게 할 것인가? Number가 유효성이 검사되면 다시 유효성을 검사하지 않습니다 ... 검증을 강제 수행 할 수 있습니까? – sebagomez