日期:2014-05-18  浏览次数:20858 次

请教一个转换泛型的问题
有一个类
  public class User
  {
  private int _userId=1;  
  private string _loginName="admin";
  private string _userName="管理员";
  private string _password="123";
  }
如何转换为Dictionary<string,object>,其中键/值对和类相同

------解决方案--------------------
探讨

我的错,没说清楚
public class User
{
private int _userId=1;
private string _loginName="admin";
private string _userName="管理员";
private string _password="123";

public int UserI……

------解决方案--------------------
这个你可以把userid做为key,如果3楼那样的定义


如果你是把一个user对象的属性全部“序列化”到Dictionary<string,object>,那个需要用反射了

或者你就干脆点直接在user对象上使用 this[string propertyName] 定义一个索引方法直接访问
------解决方案--------------------
为User类添加一个ToDictionary方法,将自身内容转换到一个字典中。
C# code

public Dictionary<string, object> ToDictionary()
{
  Dictionary<string, object> dict = new Dictionary<string, object>();
  PropertyInfo[] properties = this.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
  foreach (PropertyInfo pi in properties)
  {
    string name = pi.Name;
    object value = pi.GetValue(this, null);
    dict.Add(name, value);
  }
  return dict;
}