반사 검사 대상의 속성이 정규 특에 충족하는지 여부
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 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
비안의 속성을 반사하여 검사합니다최근에 인터페이스를 쓰고 있는데, 매개 변수는 하나의 대상으로 수신된다.객체의 등록 정보를 판단하려면 필수 항목이 필요합니다. 1、모든 속성명 획득 2. 속성 중의 값을 획득 3. 속성이null인지 판단...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.