우리 비즈니스 시스템에는 양식 편집 및 검증이 많이 포함됩니다. 가장 간단한 방법은 asp.net에 포함된 데이터 검증 컨트롤을 사용하는 것입니다. 그러나 여기에는 다음 세 가지 문제가 있습니다.
1. 검증 컨트롤을 디자인에 포함해야 합니다. 양식에 추가하고 데이터 유형, 오류 메시지 등과 같은 속성을 수동으로 설정하는 것은 매우 번거롭습니다.
2 입력 상자의 경우 필수, 날짜 형식이어야 함, 2007-1-1보다 커야 함 등 여러 항목을 확인해야 할 수도 있습니다. 이를 위해서는 여러 유효성 검사 컨트롤을 추가해야 합니다.
3 비즈니스 규칙과 양식이 서로 묶여 있어 유지 관리 및 재사용에 도움이 되지 않습니다.
우리가 바라는 검증 기능은 다음과 같습니다:
1. 검증 규칙은 폼에서 분리됩니다. 폼에 입력 상자를 그리면 런타임 시 구성 파일에 따라 검증 컨트롤이 동적으로 생성됩니다.
2 확인 규칙에 따라 기본 프롬프트 메시지가 생성됩니다. 비워둘 수 없습니다. 숫자 유형이 잘못되었습니다. 1에서 100 사이여야 합니다.
3개의 유연한 유효성 검사 규칙 표현식: range(1, 200), >=0.5, Mail(), Mobile(). 현재는 and, or 등의 조건이
지원
되지 않지만 쉽게 확장할 수 있습니다.이러한 이유로 함수의 이 부분을 캡슐화하여 사용 시
컨트롤 이름, 데이터 유형, 필수 여부, 확인 표현식 정보만 xml 파일에 설정하면 됩니다.
다음은 인용문입니다:
<검증정보>
<ControlName>콘센트 수량</ControlName>
<DataType>정수</DataType>
<필수>참</필수>
<Expression>범위(1, 100)</Expression>
</ValidateInfo>
페이지의 Page_Init 이벤트에서 클래스 메서드를 호출합니다.
ValidateHelper.LoadFromFile("data verify_configuration.xml")을 사용할 수 있습니다.
수업 디자인:
//구성 정보 클래스
클래스검증정보
{
공개 문자열 ControlName;
공개 ValidationDataType 데이터 유형;
공개 문자열 ErrorMessage;
공개 bool 필요;
공개 문자열 표현식;
}
//검증 제어 생성 팩토리
공개 클래스 ValidatorFactory
{
CreateRequiredFieldValidator();
CreateDateTypeCheckValidator();
CreateRangeValidator(최소 문자열, 최대 문자열);
CreateCompareValidator(ValidationCompareOperator oper, string valueToCompare);
...
}
// 검증 규칙 파서, 구성 정보를 기반으로 검증 제어 생성
공개 클래스 ValidatorParser
{
Parse(ValidateInfo 정보, ValidatorFactory 팩토리);
...
}
// 구성 정보를 읽고 확인 컨트롤을 양식에 바인딩합니다.
공개 클래스 ValidateHelper
{
LoadFromFile(페이지 페이지, 문자열 fileName)
}