У меня есть следующее, что при переводе DateUtc
из источника в dest Date
я хочу применить преобразование. Теперь следующий конвертер, который я написал, будет работать для указанного поля c, потому что оно указано.
Я бы хотел, чтобы мой конвертер был более гибким, чтобы я мог передавать другой объект, чем SourceDto1
, DestDto1
такие как SourceDto2
и DestDto2
public class SourceDto1
{
public DateTime DateUtc {get;set;}
}
public class DestDto1
{
public DateTime Date {get;set;}
}
public class SourceDto2
{
public DateTime DateUtc {get;set;}
}
public class DestDto2
{
public DateTime Date {get;set;}
}
конвертер
public class AttachmentCreatedDateResolver : IValueResolver<SourceDto1, DestDto1 DateTime>
{
private readonly Settings _settings;
public AttachmentCreatedDateResolver(Settings settings)
{
_settings = settings;
}
public DateTime Resolve(SourceDto1 source, DestDto1 destination, DateTime destMember, ResolutionContext context)
{
TimeZoneInfo tzi = TZConvert.GetTimeZoneInfo(_settings.TimeZone);
var converted = TimeZoneInfo.ConvertTimeFromUtc(source.DateUtc, tzi);
return converted;
}
}
Я думаю, я не хочу создавать разные классы резолвера для каждой пары объектов, которые мне нужны конвертировать даты между свойствами.
ITypeConverter
может работать, но я не был уверен, как вставить мой Settings
из DI