我正在寻找初始化一组看起来有点像这样的视图模型对象:
public class ModelA
{
public GraphModel SomeGraph { get; set; }
public GraphModel SomeGraph2 { get; set; }
public TableModel SomeTable { get; set; }
public GraphModel SomeGraph3 { get; set; }
}
public class ModelB
{
public GraphModel SomeGraph { get; set; }
public TableModel SomeGraph2 { get; set; }
public TableModel SomeTable { get; set; }
public FieldModel SomeField { get; set; }
}
现在我可以显式地初始化它们,new TableModel()
但new GraphModel()
我真的更愿意动态地完成它,所以我构建了一个迭代所有属性并为每种类型填充一组预定义初始化器的过程:
new Dictionary<Type, Func<object>>
{
{typeof (...), () => new ...{x = y}},
{typeof (...), () => new ...{z = y, c = g}},
{typeof (...), () => new ...{z = q}},
{typeof (...), () => new ...{x = y}},
};
由于我有很多这些并且反射成本很高,我想知道AutoMapper 中的某种基于默认类型的映射是否可以实现相同的效果,因为我猜它最终会使用缓存的预编译表达式。