2
A
답변
7
를 사용 typeof(Int32).MakeByRefType()
두 번째 매개 변수. 즉 :
MethodInfo mGetMethod = typeof(Gl).GetMethod("Get", bindingFlags.Public|BindingFlags.Static, null, new Type[] { typeof(Int32), typeof(Int32).MakeByRefType() }, null);
0
어떻게 대신 같은 것을 시도에 대해 :
MethodInfo method = this.GetType().GetMethod("Get");
if (method != null)
{
method.Invoke(this, new object[] { "Arg1", "Arg2", "Arg3" });
}
1
당신이 방법에 대한 구체적인 과부하를 지정해야하는 경우 다음 확실히 @Isaac Overacker는 말과 함께 할 것입니다. 그렇지 않으면 매개 변수를 지정하지 마십시오.
MethodInfo mGetMethod = typeof(Gl).GetMethod("Get", BindingFlags.Public | BindingFlags.Static);
1
out 키워드는 매개 변수를 참조로 전달합니다. 이는 아마도 문제 일 수 있습니다. C#에서는 byValue 및 byReference 매개 변수로 메소드를 오버로드 할 수 있으므로 참조 유형으로 플래그를 지정해야합니다.
.NET 4를 사용하고 있습니까? 그렇다면 동적 키워드를 사용하여 반사 된 객체를 만든 다음 직접 메소드를 호출 할 수 있습니다. 그렇게하면 MethodInfo 조회가 필요하지 않습니다. 단점은, 만약 당신이 잘못 생각하면, 당신은 런타임 예외가 발생합니다 – ghostJago