2012-11-13 4 views
0

C#에서 클래스를 동적으로로드하려고했습니다. Java에서 우리는 Class.forname("String")을 사용했기 때문에 인터넷 검색 후 C#에서 Activator.CreateInstance을 사용할 수 있다는 것을 알았습니다. 내 집회 이름이 여기있을 줄은 몰라. 어떤 제안?Activator.CreateInstance의 어셈블리 이름은 무엇입니까

object obj = Activator.CreateInstance("MyAssembly","namespaceA.SomeClassName"); 
+0

object가 코드를 작성한 동일한 어셈블리에있는 경우 첫 번째 매개 변수를 'null'로 통과 시키면 실행중인 어셈블리가 검색됩니다. –

답변

1

단순히 어셈블리의 이름입니다. 이 이 네임 스페이스와 같을 수도 있지만 그렇지 않을 수도 있습니다. 예를 들어 System.Linq.Enumerable 클래스는 System.Core 어셈블리에 있습니다 (System.Core.dll).

대상 어셈블리가 프레임 워크 인 경우 설명서를 참조하십시오.

제어 할 수있는 어셈블리 이름 인 경우 어셈블리 이름을 알아야합니다.이 이름은 프로젝트 속성의 일부입니다.

+1

형식이 정의 된 어셈블리를 찾는 가장 간단한 방법은 코드 편집기에서 해당 어셈블리를 선택하고 F12 (정의보기)를 누르는 것입니다. 클래스가 프레임 워크 클래스 인 경우 표시된 메타 데이터의 첫 번째 줄에는 어셈블리 이름이 포함됩니다. – Richard

+0

문제를 해결해 주셔서 감사합니다. –

관련 문제