Я пытаюсь сопоставить тип источника для двух типов назначения с помощью AutoMapper:AutoMapper с более чем одним типом назначения
public class Source
{
public string Value1 { get; set; }
public string Value2 { get; set; }
public Source[] Values { get; set; }
}
public interface IDest
{
}
public class DestinationSimple : IDest
{
public string Value1 { get; set; }
}
public class DestinationComplex : IDest
{
public string Value2 { get; set; }
public IDest[] Values { get; set; }
}
типа назначения для сопоставления должны быть на основе значений свойств в типе источника. Если Value1 в Source не является нулевым, тип назначения должен быть DestinationSimple. В противном случае тип назначения должен быть DestinationComplex.
В каком виде лучше всего продолжить? Я попытался использовать настраиваемый конвертер типов, но я не мог заставить его работать, потому что я не знал, как обращаться с свойством Values.
Я бы сделать шаг назад и спросить себя, если вы действительно должны хранить SourceSimple и SourceComplex в одном классе и делать смешную логику, чтобы справиться с этим. Можете ли вы заранее определить, к какому типу вы пытаетесь получить доступ? Потому что вместо этого вы можете создать 2 разных пути выполнения в зависимости от ответа на этот вопрос. –
SourceSimple и SourceComplex, возможно, не должны храниться в одном классе. Но класс мне дан, поэтому изменить это не так просто. Боюсь, я не могу заранее определить, к какому типу я пытаюсь получить доступ. – user3660151