object转换成List类型或实体类

wang2392219 2012-07-24 07:05:20
我从Dictionary 里面拿到 一个object的实体类,但是我不知道是什么实体类,我想取得这个实体类里面的所有字段的值,

应该怎么弄啊!


Dictionary<string, object> dic = new Dictionary<string, object>();

Base.UI.Model.Order or = new Base.UI.Model.Order();
or.AD_ID = 100;
or.Buy_nick = "test";
dic["test"] = or;



到时候会传进来各种实体类,我不知道是那个实体(就是我不知道Base.UI.Model.Order是这个类型的有可能是别的类型的),但是我要求出所有的值!
...全文
3215 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang2392219 2012-07-25
  • 打赏
  • 举报
回复
谢谢 大家,结贴了!
  • 打赏
  • 举报
回复
如果设计还可以更改,还是不要用反射的好
全栈极简 2012-07-24
  • 打赏
  • 举报
回复
楼上说的在理。
bwangel 2012-07-24
  • 打赏
  • 举报
回复
反射只是在宏观上用用尚可,比如动态加载某个工厂类。但是工厂类一但加载,其中频繁调用的工厂方法再用反射就有点2了。

像LZ这样的问题,完全是最小粒度的对象处理,还用反射,但性能的损失是几十倍到几百倍的。

如果什么都用反射来解决,要接口、抽象类、设计模式这些情何以堪?
davidcoffee 2012-07-24
  • 打赏
  • 举报
回复
顶楼上可以用反射类似下面这种方式,反射好东西啊~

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;

namespace TestThree
{
public class Program
{
/// <summary>
/// 测试方法
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
IDictionary<string, object> testDict = new Dictionary<string, object>();
testDict.Add("测试", new Student());

object objYouGet = testDict["测试"];
Type t = objYouGet.GetType();

PropertyInfo[] proInfos = t.GetProperties();
foreach (PropertyInfo item in proInfos)
{
Console.WriteLine("字段名称:{0}", item.Name);
Console.WriteLine("字段值:{0}", item.GetValue(objYouGet, null));
Console.WriteLine("字段类型:{0}", item.PropertyType);
Console.WriteLine("--------------------");
}

Console.ReadLine();
}
}
/// <summary>
/// 测试类
/// </summary>
public class Student
{
public Student()
{
this.Id = 0;
this.ChineseName = "测试中文名";
this.EnglishName = "Test EnglishName";
this.Score = 100;
}

public int Id { get; set; }

public string ChineseName { get; set; }

public string EnglishName { get; set; }

public double Score { get; set; }
}
}
真相重于对错 2012-07-24
  • 打赏
  • 举报
回复
可以用反射
品铭工作室 2012-07-24
  • 打赏
  • 举报
回复
如果在无条件的object下进行处理,没有任何人或程序能做到
对object要有要求,如需要实现某个interface或继承某个类,
....

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧