2012-09-09 1 views
0

가능한 중복 :
c# create an instance of a class from a string전화 개체

는 희망이 매우 간단합니다.

동적으로 개체의 이름을 나타내는 문자열을 기반으로 개체를 호출하려고합니다.

public class Class1 
{ 
    public string Property1 { get; set; } 
    public string Property2 { get; set; } 
    public string Property3 { get; set; } 
} 

public class Class2 
{ 
    public string Property1 { get; set; } 
    public string Property2 { get; set; } 
    public string Property3 { get; set; } 
} 

내 목표는 문자열 표현에서 Class2을합니다 (GetClassFromString() 분명히 만들어, 그러나 희망 내가 뭘 찾고있어 설명한다)를 호출하는 것입니다 : 여기에 내가 뭘 찾고있어의 예입니다 :

Object cls = Object.GetClassFromString("Class2"); 

그런 다음 clsClass2에서 개체가 될 것입니다.

+0

'if (str == "Class2")가 새로운 Class2()를 리턴하겠습니까? – dtb

+0

DTB, 실용적으로 보입니다. 고맙습니다. 그러나 40+ 클래스를 동적으로 호출 할 수있는 무언가로 작업하고 있다면. 미래에 추가 될 수있는 모든 새 클래스에 대해 if 조건을 새로 추가하지 않아도됩니다. 좀 더 역동적 인 방법으로 제안 해 주시겠습니까? – BenR

+0

@BenRecord : 내가 링크 된 질문을 확인하십시오. http://stackoverflow.com/questions/223952/c-sharp-create-an-instance-of-a-class-from-a-string (귀하의 사본은 중복 된 것입니다. 이 하나의). 그것은 훌륭한 솔루션입니다.하지만 더 좋은 솔루션은 아마 당신의 응용 프로그램을 리펙토링하므로 반사가 필요하지 않습니다. 어떤 종류의 이국적인 디자인이 없다면 말입니다. –

답변