using System; using System.Reflection; using System.Security.Permissions;public class LoadInvoke{ [PermissionSetAttribute(SecurityAction.Demand, Name="FullTrust")] public static void Main(string[] args){ Assembly a = Assembly.Load(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){ // Instead of invoking the methods, // it's safer to initially just list them. Console.WriteLine(m); } } } } using System;public class MyAssembly { public void MyMethod1(){ Console.WriteLine("This is MyMethod1"); } public void MyMethod2(){ Console.WriteLine("This is MyMethod2"); } public void MyMethod3(){ Console.WriteLine("This is MyMethod3"); } }
是不是这样:Assembly a = Assembly.Load("Common"); 可是用a.CreateInstance(strClassName)方法时出现异常TargetInvocationException
using System.Reflection;
using System.Security.Permissions;public class LoadInvoke{
[PermissionSetAttribute(SecurityAction.Demand, Name="FullTrust")]
public static void Main(string[] args){
Assembly a = Assembly.Load(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){
// Instead of invoking the methods,
// it's safer to initially just list them.
Console.WriteLine(m);
}
}
}
}
using System;public class MyAssembly
{
public void MyMethod1(){
Console.WriteLine("This is MyMethod1");
}
public void MyMethod2(){
Console.WriteLine("This is MyMethod2");
}
public void MyMethod3(){
Console.WriteLine("This is MyMethod3");
}
}
可是用a.CreateInstance(strClassName)方法时出现异常TargetInvocationException
是什么问题