Source タイプに設定された Enum 値に基づいて、Automapper が map の呼び出しの宛先タイプを選択する方法を見つけようとしています...
たとえば、次のクラスがあるとします。
public class Organisation
{
public string Name {get;set;}
public List<Metric> Metrics {get;set;}
}
public class Metric
{
public int NumericValue {get;set;}
public string TextValue {get;set;}
public MetricType MetricType {get;set;}
}
public enum MetricType
{
NumericMetric,
TextMetric
}
次のオブジェクトがある場合:
var Org = new Organisation {
Name = "MyOrganisation",
Metrics = new List<Metric>{
new Metric { Type=MetricType.TextMetric, TextValue = "Very Good!" },
new Metric { Type=MetricType.NumericMetric, NumericValue = 10 }
}
}
ここで、これをクラスを持つビューモデル表現にマップしたいと思います。
public class OrganisationViewModel
{
public string Name {get;set;}
public List<IMetricViewModels> Metrics {get;set;}
}
public NumericMetric : IMetricViewModels
{
public int Value {get;set;}
}
public TextMetric : IMetricViewModels
{
public string Value {get;set;}
}
AutoMapper.Map を呼び出すと、1 つの NumericMetric と 1 つの TextMetric を含む OrganizationViewModel が生成されます。
オートマッパーの呼び出し:
var vm = Automapper.Map<Organisation, OrganisationViewModel>(Org);
これをサポートするために Automapper を構成するにはどうすればよいですか? これは可能ですか?(この質問が明確であることを願っています)
ありがとう!