2016-10-26 12 views
3

내 클래스에는 매개 변수없는 기본 생성자가 없습니다. 나는 약간 AppDomain 안에 내 클래스의 인스턴스를 만들 생각생성자 매개 변수를 AppDomain.CreateInstanceXXX로 전송하는 방법은 무엇입니까?

public Section(string fileName) {...} 

: 대신 같은 생성자를 가지고있다. 내 클래스에 기본 생성자가 있다면 다음과 같이 할 것입니다 :

AppDomain domain = AppDomain.CreateDomain("ACAD-0001:409"); 

ISection section = (ISection)domain.CreateInstanceAndUnwrap(
    typeof(Section).Assembly.FullName, typeof(Section).FullName); 

그러나 기본 생성자는 없습니다. 내 생성자의 매개 변수는 어떻게 전송할 수 있습니까?

는 나는이 같은 일을 예상 :

string cuiFile = "..."; 
ISection section = (ISection)domain.CreateInstanceAndUnwrap(
    typeof(Section).Assembly.FullName, 
    typeof(Section).FullName, 
    new object[] { cuiFile }); 

을하지만이 작동하지 않습니다.

+1

[이 오버로드 (https://msdn.microsoft.com/en-us/library/dd414842 (V = vs.110)에서 .aspx) . – Amy

+0

https://msdn.microsoft.com/pl-pl/library/dd414842(v=vs.110).aspx - 두 개의 개체 []가 있습니다. 하나는 원하는 ARGS이고 다른 하나는 속성입니다. – quetzalcoatl

+0

@Amy , 고맙습니다! 문제가 해결되었습니다. –

답변

4

당신은 사용할 필요가 this overload : 당신이 필요로하는

public object CreateInstanceAndUnwrap(
    string assemblyName, 
    string typeName, 
    bool ignoreCase, 
    BindingFlags bindingAttr, 
    Binder binder, 
    object[] args,   // <-- args go here 
    CultureInfo culture, 
    object[] activationAttributes 
)