使用dynamic关键字获取复杂类型(需要使用.net 4.0或以上的环境)
public void ReflectTest(){
string fileName1 = Path.Combine(Application.StartupPath, "DllForXET.dll");
Assembly asm1 = Assembly.LoadFile(fileName1);
List<MemberInfo> members = new List<MemberInfo>();
List<string> lsttype = new List<string>();
Type[] types = asm1.GetTypes();
MethodInfo Start = null;
MethodInfo CheckEmployeeID = null;
Object cWei = null;
foreach (Type type in types)
{
lsttype.Add(type.Name);
if (type.Name == "ShopFloor")
{
cWei = System.Activator.CreateInstance(type);
Start = type.GetMethod("Start");
CheckEmployeeID = type.GetMethod("CheckEmployeeID");
}
}
string user = "abc";
object[] parameters2 = new object[] { user };
dynamic result = CheckEmployeeID.Invoke(cWei, parameters2);
Console.WriteLine(result.Result);
Console.WriteLine(result.ReturnData);
Console.WriteLine(result.Description);
}