我想调用一个类及其方法,并在运行时知道类的名称和方法名称。我想要调用的类是一个不同的项目ClassLibrary。 。要调用的类的命名空间我已经将它的引用添加到我当前的项目中。并编写了以下代码来调用。
Type CalledType = Type.GetType("ClassLibraryLocation." + ClassName);
MethodInfo info = CalledType.GetMethod(FunctionName);
Object new_obj = Activator.CreateInstance(CalledType);
Object retval = info.Invoke(new_obj, new object[] { "ABC" });
Console.WriteLine(retval);
//ClassLibraryLocation is an anather namespace for which the reference is added.
//ClassName is the name of the class present in the ClassLibraryLocation namespace
//FunctionName is the name of the function present in the ClassName Class
但Type.GetType()方法返回Null CalledType
请帮助
由于
答案 0 :(得分:2)
Type.GetType
或调用程序集中,否则 mscorlib
需要程序集名称。
相反,您应该找到包含您的类型的Assembly
实例(例如typeof(SomethingElse).Assembly
),然后在其上调用GetType
。
答案 1 :(得分:1)
我正在使用以下功能执行调用
public static Object ExecuteBLMethod(string ClassName, string Method, object[] args)
{
Type _Class = Type.GetType("BusinessLayer." + ClassName + ", BL, Version=1.0.0.0, Culture=neutral, PublicKeyToken="xxxx-xx");
if (_Class != null)
{
object obj = Activator.CreateInstance(_Class);
if (obj != null)
return _Class.InvokeMember(Method, BindingFlags.Default | BindingFlags.InvokeMethod, null, obj, args);
}
return null;
}