Kaynak türünde ayarlanan bir Enum değerine bağlı olarak, Otomatik Yanıtlayıcı'nın aranacak bir aramanın hedef türünü seçmesi için bir yol bulmaya çalışıyorum ..Otomatik tip çözücü, hedef türünü kaynak türünde bir enum değerine göre çözümle
örn. Aşağıdaki sınıflar Verilen:
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
}
Aşağıdaki nesneyi varsa:
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;}
}
:
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 }
}
}
Şimdi, sınıfları olan bunun bir ViewModel temsil etmek bu eşlemek istediğiniz
AutoMapper.Map öğesine yapılan çağrı, bir NumericMetric ve bir TextMetric içeren bir OrganisationViewModel ile sonuçlanacaktır.
Automapper çağrı:
var vm = Automapper.Map<Organisation, OrganisationViewModel>(Org);
nasıl Automapper bunu desteklemek için yapılandırma hakkında gitmek? Mümkün mü? (Umarım bu soru açıktır)
Teşekkürler!
Buna bakıp iki tür yerine 'Metric 'geri gelmeye devam ediyorum. Mesela, her iki "int Değeri" ve "Değer Değeri" nizde her ikisi de IMetricViewModels'i uygular. Arayüzün neye benziyor? –
hometoast
Merhaba, Örnek, asıl sorundan çok daha basittir, MetricType'da çok çeşitli farklı şeyler içeren birçok farklı tür vardır. Arabirim boş ve sadece orada farklı bir görünüm şablonuna tümüyle çözümlenecek şeylerin bir listesini görmeme izin ver. (MVC uygulaması ... Html.DisplayFor (Organisation.Metrics) 6 veya 7 farklı şablonun bir listesiyle sonuçlanacaktır). Bu mantıklı mı yoksa soruyu genişletmeli mi? – Paul