2010-01-18 4 views
0
에서 입력 된 얻을

내 오류 코드 : 컴파일asp.net이 강하게 문자열

string model = "Content"; 
Type stype = Type.GetType("mvc.Models." + model); 
ViewPage<stype> vp = new ViewPage<stype>(); 

물론 그것은 오류,하지만 분명히 내가 생각하고 무엇을 보여줍니다. 내가 할 수 있을까?

+0

어, 여기에 코드가 있는데 오류 코드가 아닙니다 ... – terR0Q

+0

나는 그것을 컴파일 할 수 없으므로 오류가 있습니까? 오류 유형 또는 네임 스페이스 이름 'stype'을 (를) 찾을 수 없습니다. 사용 지침이나 어셈블리 참조가 누락 되었습니까? – complez

+0

코드를 읽는 중 'mvc.Models.Content' 프로젝트에서 사용할 수있는 유형은 무엇입니까? – terR0Q

답변

2

해당 기능 GetType은 제공된 네임 스페이스뿐만 아니라 assembly-qualified name이 필요합니다.

+0

오류없이 이것을 할 수 있기 때문에 나는 그렇게 생각하지 않는다. Models.Content c = (Models.Content) Type.GetType ("mvc.Models.RSSContent"). InvokeMember ("" , BindingFlags.CreateInstance, null, null, null); RSSContent 내용에서 상속합니다. – complez

+0

확실치 않지만 당신이하려는 것은 언어 구조의 범위 밖에있을 수 있습니다. 글자 그대로 타입을 코딩 할 때 타입 dec 또는 명시 적 캐스트인지에 관계없이 작동하는 것으로 보입니다. 필자는 컴파일러가 런타임에서 유형 변수를 명시 적으로 정의하는 것을 좋아하지 않으므로 빌드 메시지를받는 이유라고 생각합니다. –