저는 리플렉션의 예를 이틀 동안 읽었으며 필요한 모든 것을 모두 모아서 만들 수는 없습니다. 실제로 "using System.Reflection"이 회색으로 표시 될 때까지 리플렉션을 사용하고 있다고 생각했습니다. :-)CSharp : 동적으로 클래스 (생성자 포함) 및 메서드를 호출하려면 어떻게해야합니까?
내 수업 이름과 그 안에 포함 된 방법을 포함하는 XML 파일이 있습니다. 메서드 나 이름의 순서가 변경 될 수 있습니다. 내가 그들을 읽으면 나는 그들을 실행할 수 있기를 원한다. 충분히 단순 해 보입니다.
나는 다음과 같은 테스트 코드를 가지고 :
// myClassName = "namespace.TransactionServices"
Type tb = Type.GetType(myClassName);
// Classes will always have the same constructor
object classInstance = Activator.CreateInstance (
tb,
new object[]
{
authorization.apiKey,
authorization.userName,
testData.servicesEndPoint
});
//Grab the method I want
//myMethodName = "GetVersion"
MethodInfo mymethod = tb.GetMethod(myMethodName);
// no parameters for this method call
object result = mymethod.Invoke(classInstance, null);
TB는 null입니다. 나는 클래스를 생성하기위한 올바른 API를 얻으려고 애 쓰고 있었지만, 내가 가지고있는 나머지가 유효한지 알지 못한다.
제안 사항?
감사합니다.
편집 : 추가 된 네임 스페이스. Activator.CreateInstance가 생성자를 찾을 수없는 오류를 반환합니다. 거기에 있습니다.
을 사용하여 기존 객체를 가져올 수 있습니까? 이 문제에 적합한 것처럼 들린다. –