例如dynamic userInfo = app.Get("me");
但我不知道userInfo对象到底有哪些属性,能否通过反射的方式获取这些属性?
9 个解决方案
#1
// User为一个Class
Type 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; // 公共属性的类型
}
查一查MSDN或者,或者自己在vs环境中写一写,利用VS的联想功能,就能知道它们怎么用了。
#2
这个答案得出的结果不是预期的。
#3
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);
}
}
#4
学习学习
#5
那你预期的是什么结果?
#6
预期的结果:它有多少属性就输出多少属性名。
但这里明显不是。输出来的是Items, Count, Value....明显不是我这个动态对象的属性。
#7
如果你的这个userInfo 继承的是其它的类,反射之后当然会把这些继承的属性也找出来
#8
dynamic也是一个object。其它的说了也是白说。
#9
收藏备用
#1
// User为一个Class
Type 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; // 公共属性的类型
}
查一查MSDN或者,或者自己在vs环境中写一写,利用VS的联想功能,就能知道它们怎么用了。
#2
这个答案得出的结果不是预期的。
#3
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);
}
}
#4
学习学习
#5
那你预期的是什么结果?
#6
预期的结果:它有多少属性就输出多少属性名。
但这里明显不是。输出来的是Items, Count, Value....明显不是我这个动态对象的属性。
#7
如果你的这个userInfo 继承的是其它的类,反射之后当然会把这些继承的属性也找出来
#8
dynamic也是一个object。其它的说了也是白说。
#9
收藏备用