내가 문제가 C#에서 반사를 사용하여 문자열 값을 알 수없는 열거 형의 인스턴스를 생성 .Enum, my value는 수수께끼의 Enum에있는 항목과 일치하는 int 값입니다.런타임에 내가 열거의 System.Type이 있고 baseType 여기서 시스템임을 확인 한 때 열거의 인스턴스를 생성하는 방법을 정확히 운동
지금까지이 코드는 다음과 같이 상술 단지 로직이다.
if (Type.GetType(type) != null)
{
if (Type.GetType(type).BaseType.ToString() == "System.Enum")
{
return ???;
}
}
내가이 과거에 열거 형 작업 항상 메신저 혼란 내가 구문 분석하려고 열거 코드 시간에하지만이 시나리오에서 알고 있고 구글 친화적 인 방법으로 내 질문을 분명히 말하는 약간의 행운이 있었다 ... 나는 보통
(SomeEnumType)int
같은 것을 할 것입니다하지만 난 코드시 EnumType을 잘 모릅니다 때문에 내가 어떻게 같은 일을 달성 할 수 있습니까?
그것은 당신이 후 원하는 작업 "반환 ???"혼란 조금이고, 할 왜 당신이 경우에 반사가 필요합니다. 동일한 (SomeEnumType) 유형을 사용하여 유형을 SomeEnumType으로 유형 변환 할 수 있습니다. – outcoldman
문제는 내가 어떤 열거 형이 될 수 있는지 모르겠 런타임에 될 수있는 .. 반환 ??? [/ 코드] –
이 라인'Type.GetType (타입) .BaseType.ToString() == "System.Enum"; [코드] Enum.Parse (Type.GetType (타입), OB) 같은 것 '객체가'SomeEnumType'을 이미 'SomeEnumType' 타입으로 변환했기 때문에'SomeEnumType'을'SomeEnumType'으로 변환해야하는 이유는 무엇입니까? 이것으로 무엇을 달성하기를 원하십니까? – outcoldman