C#에서 .NET 리플렉션을 사용하여 두 개의 매개 변수 (부울 및 문자열)를 사용하는 함수를 호출하려고합니다. 그러나, 다음 코드 나 예외 얻을 : (". 어레이와 호환 형식으로 된 요소에 액세스하려고") 이것이 ArrayTypeMismatchException을 발생C#에서 리플렉션을 사용하여 다른 유형의 인수로 메소드를 호출하는 방법
object[] paramList = new object[] { true, "Foo" };
Type wsType = typeof(MyWS);
MyWS inst = (MyWS)Activator.CreateInstance(wsType);
MethodInfo method = wsType.GetMethod(function); // function = the name of the function to be called
method.Invoke(inst, paramList);
한다.
paramList가 예외를 일으키는 것 같지만 왜 그럴까요?
뭔가처럼 될 것입니다 전화를 시도하고있다 기능 : 당신이 무엇을하고 있는지에 아무 잘못이있는 것은 보이지 않는다
public bool EnableSchedule(bool enable, string password)
{
...
}
확인과 같은 getMethod 메소드()에 일부 바인딩 플래그를 추가하려고합니다. 그 외에는 코드가 작동해야합니다. – Groo
배열은 다른 유형의 요소, 특히 객체 배열을 포함 할 수 있습니다. 더 나은 질문을 문서화하고, 호출하려는 유형 및 메소드와 예외 스택 추적을 표시하십시오. –
"function"의 정의 (또는 적어도 선언)를 제공하지 않으면, 잘못되어 가고있는 것을 파악하기위한 손. 매개 변수의 순서가 잘못 되었습니까? 함수가 (string, bool) 함수가 아닌 (bool, string) 함수를받을 수 있습니까? –