2010-07-19 2 views
0

가능한 중복 :
How To Test if a Type is Anonymous?
Anonymous Types - Are there any distingushing characteristics?.NET Reflection으로 익명의 개체를 찾는 방법은 무엇입니까?

타입 객체가 익명의 객체를 참조하는 경우 감지 할 수있는 방법이 있나요? 익명 형식이 단지 컴파일시 이슈 때문에

var obj = new { A = "Hello" }; 
Type x = obj.GetType(); 
// is there something equivalent to x.IsAnonymous? 
Assert.IsTrue(x.IsAnonymous); 
+1

것을이 속성으로 장식 된 유형도 true를 반환합니다 물론

var obj = new { A = "Hello" }; var isAnonTypeCandidate = obj .GetType() .GetCustomAttributes(typeof(CompilerGeneratedAttribute), true) .Count() > 0; 

는 여기를 참조하십시오 : http://stackoverflow.com/questions/ 2483023/type-is-an-type-an-anonymous 테스트 방법 – annakata

답변

3

아니, 런타임에 그들은 컴파일러에 의해 방출 그냥 평범한 종류, 방법이 없습니다. 컴파일러가 생성 할 때 이러한 유형은 CompilerGeneratedAttribute으로 표시되며 이러한 경우인지를 판별하는 데 사용할 수 있습니다. 그것은 100 % 보장하지 그래서 그것은 익명의 유형

+0

어쨌든 익명 형식을 감지하는 해결 방법이 있습니까? – JacobE

+1

@ JacobE : 모든 익명 형식에는 현재 형식 이름에 'AnonymousType'이 포함되어 있다고 생각합니다. – leppie

+0

형식 이름과 CompilerGeneratedAttribute의 AnonymousType 조합이 99 % 충분해야한다고 생각합니다 :) –

관련 문제