2008-11-02 11 views
1

"유형"문자열에 대한 유효성 검사기가 이미 있는지 알고 있습니까? 난 그냥 바퀴를 재발견하고 싶지 않아, 하나는 충분히 쉽게 작성유형 문자열 용 검사기?

 
type="TopNamespace.SubNameSpace.ContainingClass, MyAssembly" 
type="TopNamespace.SubNameSpace.ContainingClass, MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089" 

:

나는 내 사용자 지정 설정의 유형 속성은 다음 중 하나입니다 있는지 확인하려면.

+0

어떤 언어/환경을 사용하고 있습니까? 태그에 추가하면 더 나은 답변을 얻을 수 있습니다. – nickf

+0

태그를 신경 쓰지 마시고 제목에 넣으십시오. –

+0

이들은 .NET 유형 이름 – Jimmy

답변

0

resharper의 전역 오류 분석에서 네임 스페이스 또는 클래스를 찾을 수 없으면 오류가 발생하지만 참조하는 플러그인이 항상 도움이되지는 않습니다.

아마도 가장 간단한 것은 try catch 블록에 앱 도메인을로드하는 코드를 삽입하는 것입니다.

dll이 bin에있는 경우 시작할 때로드되지만 사용하기 전까지는 오류가 발생하지 않으므로 ContainingClass의 인스턴스를 새로 시작할 때 오류가 발생하지 않습니다. 구성에서 네임 스페이스를 가져 와서 각 클래스를 사용해 볼 수 있습니다.

+0

유형을로드하는 것은 쉽습니다. 내가 시험해보기도 전에 설정에서 문자열을 온전하게 검사하는 것입니다. 유효성 검사기를 작성하는 것은 쉽습니다. .NET somwhere에 이미 존재하는 경우에는이를 수행하고 싶지 않습니다. – claco

+0

내가 본 것은 없지만 정규식은 너무 어려워서는 안됩니다. –

0

저는 프레임 워크에 아무것도 들어 있지 않다는 것을 확신합니다.

results on regexlib.com 몇 가지가 있습니다. 그들 중 누구라도 당신이 묘사 한 시나리오를 위해 일해야합니다. 그러나 이들 중 누구도 제네릭 형식을 지정하는 구문을 올바르게 지원할 수는 없습니다. 이 문제를 적절하게 처리하려면 정규 표현식만으로는 충분하지 않습니다. 일반 형식 인수에 대해 동일한 정규 표현식을 재귀 적으로 처리해야합니다. 자세한 내용은

List<> 
"System.Collections.Generic.List`1" 

List<string> 
"System.Collections.Generic.List`1[[System.String]]" 

Dictionary<string, string> 
"System.Collections.Generic.Dictionary`2[[System.String],[System.String]]" 

Dictionary<string, List<string>> 
"System.Collections.Generic.Dictionary`2[[System.String],[System.Collections.Generic.List`1[[System.String]]]]" 

Type.AssemblyQualifiedName에 MSDN 문서를 참조하십시오 : 예를 들어, 다음과 같은 유형 이름을 고려하십시오.

2

나는 당신이 "사용자 지정 설정"무슨 뜻인지 잘 모르겠지만, 당신은 여전히 ​​.NET의 구성 프레임 워크 내에서 작업하는 경우 (예를 들어, 사용자 정의 configurationSection/configurationElement 개발), 당신은 단순히 시스템으로 property를 입력 할 수 있습니다. (문자열 대신) 유형을 지정하면 .NET에서 유효성 검사를 자동으로 수행합니다.

0

사용자 지정 구성 섹션을 작성하는 경우 Abraham Pinzur의 제안이 정확합니다.

Type.GetType(...)을 사용하면 직접 수행 할 수 있습니다.