У меня есть специальный тип, называемый Any
, который может содержать в себе значения любого типа (например, тип объекта)
Учтите следующее:
class ADto
{
public Any Foo { get; set; } // Foo has BDto inside of it
}
class A
{
public object Foo { get; set; } // Foo has B inside of it
}
class BDto
{
public string Bar { get; set; }
}
class B
{
public string Bar { get; set; }
}
Я настроил сопоставления вот так:
cfg.CreateMap<ADto, A>();
cfg.CreateMap<BDto, B>();
Я использую настраиваемый logi c, чтобы узнать, какой тип на самом деле находится в ADto.Foo
(это BDto
).
Если я использую настраиваемый TypeConverter:
public class AnyToObjectTypeConverter : ITypeConverter<Any, object>
{
public object Convert(Any source, object destination, ResolutionContext context)
{
var underlyingType = FindUnderlyingType(source); //which in case is typeof(ADto)
// here I need to map from ADto => A, I would like AutoMapper to do this mapping since I configured this mapping in configuration, but how?
???
}
}
Тогда как я могу выполнить сопоставление BDto
с B
для свойства Foo
, как обычно?
У меня есть только дополнительный шаг в моем сопоставлении, который Мне нужно найти реальный базовый тип!