2014-01-27 2 views
1

У меня есть один способ создания сопоставления из массива в тип объекта. так что у кого-нибудь есть ответ для этого, тогда, пожалуйста, помогите мне.Automapper: преобразование массива в объект

вид модели (Источник класс):

public class HealthView : IView 
{ 
    public Guid Id { get; set; } 
    public string Type { get; set; } 
    public string Value { get; set; } 

    [JsonIgnore] 
    public DateTime? HealthCheckDateTime { get; set; } 
    public string HealthCheckDateTimeString { get { return HealthCheckDateTime.GetValueOrDefault().ToString(CultureInfo.InvariantCulture); } } 
} 

конвертированы в этом (назначения класса):

public class HealthResponse : WebApiResonseBase 
{ 
    public HealthResponse() 
    { 
     Value = new HealthLine[0]; 
    } 

    public HealthLine[] Value { get; set; } 

    public class HealthLine 
    { 
     public Guid Id { get; set; } 
     public string Type { get; set; } 
     public string Value { get; set; } 
     public DateTime? HealthCheckDateTime { get; set; } 
     public string HealthCheckDateTimeString { get; set; } 
    } 
} 

отображение:

CreateMap<HealthView[], HealthResponse>() 
      .ForMember(x => x.RedirectRequired, o => o.Ignore()) 
      .ForMember(x => x.Uri, o => o.Ignore()); 

Это вся моя процедура, я стараюсь по-разному, но я получил ошибки.

+0

Что вы пытаетесь достичь? –

+0

У меня есть решение этой проблемы. но с моей стороны возникает какая-то проблема. поэтому я дам ответ позже. –

+0

Я пытаюсь массив для сопоставления элементов объекта с помощью automapper .. –

ответ

3

Я решил эту проблему с этим кодом.

Mapping:

CreateMap<HealthView, HealthResponse.HealthLine>(); 

В контроллере:

var response = new HealthResponse 
     { 
      Value = healthView.Select(Mapper.Map<HealthView, HealthResponse.HealthLine>).ToArray() 
     }; 
2

я понимаю, что вы хотите отобразить HealthView к Healthline так попробовать это:

CreateMap<HealthView, HealthView>(); 

var response = new HealthResponse(); 
var views = an array of HealthView objects from somewhere. 

response.Value = Mapper.Map<IEnumerable<HealthView>,IEnumerable<HealthLine>>(views); 
+0

благодарит за вашу помощь. –

Смежные вопросы