내가이 매우 간단한 방법 내가 호출 할 수 있고 다른 나를 발견되지 예외를주고 그 중 하나가 같은 클래스 인스턴스의 메소드를 호출, 여기에 방법은 다음과 같습니다입력의 Arg
class SimClass
{
public int GeneralMethod1(int a)
{
return a;
}
public int GeneralMethod2(Input input)
{
return input.Numberi;
}
}
class Input
{
public int Numberi { get; set; }
}
단순히 "GeneralMethod2"를 호출에 문제를
Assembly assembly = Assembly.LoadFrom("C:\\Amir\\SimFIle.dll");
Type type = assembly.GetType("SimFIle.SimClass");
object instanceOfMyType = Activator.CreateInstance(type);
object[] Args1 = new object[1]; Args1[0] = -1;
object result = type.InvokeMember("GeneralMethod1",
BindingFlags.Default | BindingFlags.InvokeMethod,
null,
instanceOfMyType,
Args1);
를하지만이 있습니다 : "GeneralMethod1"를 호출 할 수 있습니다
Input input = new Input { Numberi = -5};
object[] Args2 = new object[1]; Args2[0] = input;
object output = type.InvokeMember("GeneralMethod2",
BindingFlags.Default | BindingFlags.InvokeMethod,
null,
instanceOfMyType,
Args2);
것 당신 PLE를 내 실수는 무엇입니까?
문제는 무엇인가 :
어느 쪽이든, 당신은 동적으로로드 된 어셈블리 내에서
Input
클래스를 사용하여 문제를 해결 할 수 있어야한다? – SLaks코드가 올바른 것 같습니다. Assembly.LoadFrom ("C : \\ Amir \\ SimFIle.dll")에서 가장 많이 업데이트 된 DLL을로드하지 않았을 수 있습니다. 이 코드를 사용해보십시오 : Type type = typeof (SimClass); 작동하는지 확인하십시오 –