반사 검사 대상의 속성이 정규 특에 충족하는지 여부
2650 단어 리플렉스
public class student
{
[RegularExpression(@"^[a-zA-Z]{1,20}$", ErrorMessage = " , 20!")]
public string EName { get; set; }
}
그러나 때때로 대상 실례의 생성은 이러한 정규 검사를 빙빙 돌려서, 예를 들어 Excel에서 데이터를 직접 대상으로 흘릴 수 있다.우리는 데이터 흐름이 대상을 생성할 때 발사를 이용하여 생성 대상이 정규 표현에 만족하는지 검사할 수 있다.
public static void ValidateInstatnce<T>(T t)
{
var objectT = Activator.CreateInstance<T>();
var propertyInfoList = objectT.GetType().GetProperties();
foreach (var property in propertyInfoList)
{
var proValue = property.GetValue(t,null);
var attars = property.GetCustomAttributes();
foreach (var attar in attars)
{
try
{
var validateAttar = attar as ValidationAttribute;
if (validateAttar!=null)
{
//Null , , .
validateAttar.Validate(proValue ,property.Name);
}
}
catch (Exception e)
{
if (e is ValidationException)
{
throw;
}
}
}
}
}
테스트 결과:
public static void test()
{
try
{
var stu = new student { EName = "123" };
ValidateInstatnce<student>(stu);
}
catch (Exception e)
{
throw e;
}
}
}
버퍼링 예외:
, 20!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
반사를 이용한 범용 DAL텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.