Nullable(of Enum)
이 리플렉션을 통해 실제로 Enum
인지 여부를 어떻게 결정합니까?리플렉션을 사용하는 .NET 동적 오브젝트
T
유형의 객체를 데이터베이스 호출에서 검색 한 IDataReader
으로 동적으로 채우는 방법으로 작업하고 있습니다. 본질적으로, 그것은 데이터 아더의 서수 및 모든 속성 T
을 반복하고 서수 이름과 일치하는 속성을 채 웁니다 (또한 일부 속성 마법은 열 이름을 변경하기 위해 throw됩니다). 다른 모든 상황에서는 효과가 있지만, 에 System.Enum
을 입력하면 대신 System.ValueType
을 찾습니다. 따라서 Enum 검사가 실패하고 메서드가 폭탄이됩니다.
[편집 : Type.IsEnum
은 내가 필요한 방식으로 작동하지 않습니다. 여기서 가장 중요한 문제는 T
의 BaseType 계층 구조에있는 것이 Enum
이라고 말하지 않는다는 것입니다. 마치 Nullable
유형을 내 Enum
권리를 상실한 것처럼 만드는 것입니다.]
아이디어가 있으십니까?
오늘 COM 유형의 일부 반사 물건. 한숨. 그들이 관리되고 있어도 제네릭 타입이 정말 좋지 않은 것 같습니다.) – OregonGhost
솔리드가 내 친구에게 대답했습니다. 여기에 if 문이 있습니다 : var property = [mytype] .GetType(). GetProperty ([propertyname]); (Nullable <>) && typeof (열거 형) .IsAssignableFrom (Nullable.GetUnderlyingType (property.PropertyType)))) if (property.PropertyType.GetGenericTypeDefinition() – Merritt