Dim a as Type = GetType (className) 유형을 변경합니다. 그러나 클래스의 이름 만 문자열로 사용합니다. 나는 타입을 반환 할 GetType ("class1")과 같은 것을 원한다.클래스 자체 대신 클래스의 이름을 매개 변수로 보내서 클래스의 형식을 얻는 방법은 무엇입니까?
답변
Type.GetType("class1")
Type.GetType (...)과 Assembly.GetType (...) 모두 정규화 된 형식 이름이 필요합니다. 따라서 네임 스페이스없이 클래스 이름 만 전달하면 Type이 산출되지 않습니다.
이 같은 네임 스페이스를 포함해야합니다 경우 :
Type.GetType("Fully.Qualified.Namespace.class1")
는 GetType을 (클래스 1)과 같은 결과를 얻을 것이다.
업데이트 :이 느린 작업입니다 가정
GetType().Assembly.GetTypes().First(type => type.Name == "AssemblyModuleTests")
: 당신이 당신의 클래스의 네임 스페이스를 모른다면, 당신은 현재 어셈블리 유형 (사용의 LINQ의 마음을) 검색을 할 수있는 GetTypes()가 어셈블리의 모든 형식을 열거하기 때문에 정규화 된 이름을 사용하여 형식을 찾는 것보다.
두 번째 쿼리를 AppDomain.CurrentDomain.GetAssemblies()와 결합하여 검색 범위를 추가 할 수 있습니다. –
@Roger - 확실히. 로드 된 모든 어셈블리에서 가능한 모든 유형을로드하므로로드가 더 많이 추가됩니다. 그래서 시나리오에 대해 더 많이 알지 못해서 나는 그것을 추천하지 않을 것입니다 ... –
- 1. IWindsorContainer를 클래스의 매개 변수로 사용합니다.
- 2. 클래스의 이름을 포함하는 문자열에서 클래스의 객체를 만드는 방법은 무엇입니까?
- 3. 클래스의 자체 기능 클래스의 권리를 참조 하시겠습니까?
- 4. 슈퍼 클래스의 메서드가 서브 클래스의 메서드 대신 호출되는 이유는 무엇입니까?
- 5. 클래스의 인스턴스를 얻는 방법
- 6. 클래스의 템플릿 매개 변수로 메서드의 서명 전송
- 7. 는 부모 클래스의 본문에 아이 클래스의 이름을 얻는 방법
- 8. Objective-C 클래스의 인스턴스 변수로 C++ 클래스
- 9. 웹 서비스 - 기본 클래스 대신 파생 클래스의 XmlInclude?
- 10. 한 클래스의 모든 종속성 클래스 이름을 찾는 방법은 무엇입니까?
- 11. 상속 클래스의 이름을 얻는다
- 12. 생성하고 소멸하는 클래스의 이름을 지정하는 방법은 무엇입니까?
- 13. 클래스의 CSS 너비를 얻는 방법?
- 14. 날짜를 PHP 클래스의 변수로 설정
- 15. 왜 Java 클래스의 "클래스"입니까?
- 16. 클래스의 모든 매개 변수와 해당 유형을 찾는 방법은 무엇입니까?
- 17. 클래스의 속성을 메서드의 매개 변수로 전달할 수 있습니까?
- 18. 클래스 개체와 클래스의 인스턴스
- 19. Groovy 클래스의 모든 속성 이름을 가져 오는 방법은 무엇입니까?
- 20. Python : 클래스 이름을 함수의 매개 변수로 전달 하시겠습니까?
- 21. 클래스의 생성자 이름을 대문자로 표시해야합니까?
- 22. 전화 걸기 방법의 이름을 얻는 방법은 무엇입니까?
- 23. 로깅을위한 클래스의 모듈 이름을 선언하십시오.
- 24. 네임 스페이스와 관련하여 클래스의 이름을 올바르게 지정하는 방법은 무엇입니까?
- 25. 함수에서 클래스 이름을 매개 변수로 전달하는 것은 무엇입니까?
- 26. 두 클래스의 매개 변수화를 한 클래스의 매개 변수화로 변환
- 27. 매개 변수로 형식을 전달하는 방법
- 28. 클래스의 객체 참조를 얻는 방법
- 29. 포함 된 클래스의 컨테이너 클래스 값을 설정하십시오.
- 30. Java 클래스의 이름을 바꾸는 방법과 Mercurial 지원을 사용하는 방법은 무엇입니까?
class1이 전역 이름 공간에있는 경우에만 작동합니다. –
@Peter, 물론 그렇습니다. 훨씬 더 중요한 것은 mscorlib에 정의 된 유형 또는 Type.GetType에 대한 호출을 포함하는 어셈블리에서만 작동한다는 것입니다. –