dynamic对象如何通过反射获取其所有属性名称
dynamic对象如何通过反射获取其所有属性名称?
例如dynamic userInfo = app.Get("me");
但我不知道userInfo对象到底有哪些属性,能否通过反射的方式获取这些属性?
[解决办法]
// User为一个ClassType t = User.GetType();// 获取类的所有公共属性System.Reflection.PropertyInfo[] pInfo = t.GetProperties();// 遍历公共属性foreach(System.Reflection.PropertyInfo pio in pInfo){ string fieldName = pio.Name; // 公共属性的Name Type pioType = pio.PropertyType; // 公共属性的类型}
[解决办法]
private void dynamicRun() { string filePath = @"D:\ScheduledJob\DLL\ScheduleJob.dll"; string typeName = "ScheduleJob.DailyInfo"; // string methodName = "SendDailyInfo"; string methodArgs = "hello,this is dynamic Demo"; try { //载入Assembly Assembly a = Assembly.LoadFrom(filePath); //应用dynamic自动实现反射 dynamic o = a.CreateInstance(typeName, false, BindingFlags.CreateInstance, null, null, null, null); //这里直接写要执行的方法和参数 o.SendDailyInfo(methodArgs); } catch (Exception ex) { Console.WriteLine("Cannot run dynamic " + ex.InnerException); } }
[解决办法]
dynamic也是一个object。其它的说了也是白说。