使用反射,参考下面这个加载dll的例子:// LoadInvoke loads MyAssembly.dll and invokes the MyMethod1 method. // After compiling this class, run LoadInvoke.exe with MyAssembly.dll // as the command line argument, as shown below: // LoadInvoke Myassembly.dllusing System; using System.Reflection; public class LoadInvoke { public static void Main(string[] args) { Assembly a = Assembly.LoadFrom(args[0]); Type[] mytypes = a.GetTypes(); BindingFlags flags = (BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly); foreach(Type t in mytypes) { MethodInfo[] mi = t.GetMethods(flags); Object obj = Activator.CreateInstance(t); foreach(MethodInfo m in mi) { m.Invoke(obj, null); } } } }
我猜你是要这个Type t = Type.GetType("System.String");object s = Activator.CreateIntance(t);
--------------------------------------- namespace MyTest { public class MyClass { public string GetString() { return "test"; } } } ----------------------------------------- 测试代码: Type t = Type.GetType("MyTest.MyClass"); object s = Activator.CreateIntance(t); s.GetString(); ------------------------------------------编译时报告错误“object”并不包含对“GetString”的定义,该如何解决?
Type t = Type.GetType("MyTest.MyClass,你dll的名称");
测试代码: Type t = Type.GetType("MyTest.MyClass"); object s = Activator.CreateIntance(t); s.GetString(); -----------------------------------------Type t = Type.GetType("MyTest.MyClass"); MyClass s = (MyClass)Activator.CreateIntance(t); s.GetString();
--------------------------------------- namespace MyTest { public class MyClass { public string GetString() { return "test"; } } } ----------------------------------------- 测试代码: Type t = Type.GetType("MyTest.MyClass"); object s = Activator.CreateIntance(t); s.GetString(); ------------------------------------------编译时报告错误“object”并不包含对“GetString”的定义,该如何解决?强制转换为MyTest.MyClass((MyTest.MyClass)s).GetString();
// After compiling this class, run LoadInvoke.exe with MyAssembly.dll
// as the command line argument, as shown below:
// LoadInvoke Myassembly.dllusing System;
using System.Reflection;
public class LoadInvoke
{
public static void Main(string[] args)
{
Assembly a = Assembly.LoadFrom(args[0]);
Type[] mytypes = a.GetTypes();
BindingFlags flags = (BindingFlags.NonPublic | BindingFlags.Public |
BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly); foreach(Type t in mytypes)
{
MethodInfo[] mi = t.GetMethods(flags);
Object obj = Activator.CreateInstance(t); foreach(MethodInfo m in mi)
{
m.Invoke(obj, null);
}
}
}
}
namespace MyTest
{
public class MyClass
{
public string GetString()
{
return "test";
}
}
}
-----------------------------------------
测试代码:
Type t = Type.GetType("MyTest.MyClass");
object s = Activator.CreateIntance(t);
s.GetString();
------------------------------------------编译时报告错误“object”并不包含对“GetString”的定义,该如何解决?
Type t = Type.GetType("MyTest.MyClass");
object s = Activator.CreateIntance(t);
s.GetString();
-----------------------------------------Type t = Type.GetType("MyTest.MyClass");
MyClass s = (MyClass)Activator.CreateIntance(t);
s.GetString();
namespace MyTest
{
public class MyClass
{
public string GetString()
{
return "test";
}
}
}
-----------------------------------------
测试代码:
Type t = Type.GetType("MyTest.MyClass");
object s = Activator.CreateIntance(t);
s.GetString();
------------------------------------------编译时报告错误“object”并不包含对“GetString”的定义,该如何解决?强制转换为MyTest.MyClass((MyTest.MyClass)s).GetString();