using System.Collections.Generic;
public Guid Id { get; set; }
public string UID { get; set; }
public string ItemID { get; set; }
public bool Security { get; set; }
public Dictionary<string, string> Data { get; set; }
public virtual string UID { get; set; }
public virtual string ItemId { get; set; }
public virtual bool Security { get; set; }
public virtual bool Delete { get; set; }
public virtual DateTime CreatedOn { get; set; }
public virtual DateTime LastUpdated { get; set; }
public virtual ICollection<ItemData> Data { get; set; }
public virtual string Key { get; set; }
public virtual string Value { get; set; }
public static void Main()
var source = new ItemDTO()
CreatedOn = new DateTime(2017,12,12),
LastUpdated= new DateTime(2017,12,12),
Mapper.Initialize(cfg => {
cfg.CreateMap<ItemDTO,Item>();
Mapper.Map(source, dest);
foreach (var info in dest.GetType().GetProperties())
Console.WriteLine("Name " + info.Name + " : " + info.GetValue(dest));
if(info.Name.Equals("Data"))
object list = info.GetValue(dest, null);
ICollection<ItemData> details = (ICollection<ItemData>)list;
foreach (ItemData od in details)
foreach (var n in od.GetType().GetProperties())
Console.WriteLine("Name " + n.Name + " : " + n.GetValue(od));