从Dictionary创建匿名对象

时间:2015-10-30 12:27:44

标签: c# reflection expandoobject

今天我陷入困境,我需要将Dictionary<String,String>转换为匿名对象。有没有人曾经尝试过这个。以下是我实际需要的例子。

var dict = new Dictionary<string, object> 
{
    { "CourseId", "XDX123BH" }, 
    { "PersonID", "JIHJ98KH" } 
};

虽然我想创建的这个对象是一个匿名对象,如:

new {CourseID = "XDX123BH", PersonId = "JIHJ98KH" }

是否可以这样做?

1 个答案:

答案 0 :(得分:0)

你的词典是

var input = new object();
var input2 = new object();

  var dict = new Dictionary<int, course<T1, T2>>
  {
    {1, new course<T1, T2> {CourseID =(T1)Convert.ChangeType(input, typeof(T1)),
                            PersonID = (T2)Convert.ChangeType(input2, typeof(T2))}}
  };

你是一门课程

public class course<T1, T2>
{
   public T1 CourseID { get; set; }
   public T2 PersonID { get; set; }
}

更新后,您可以通过这种方式将所有内容传递给它。将您的输入解析为特定类型。