【发布时间】:2020-06-16 09:34:43
【问题描述】:
在将DateUtc 从源转换为目标Date 时,我有以下内容,我想应用转换。现在我编写的以下转换器将适用于特定字段,因为它已指定。
我希望我的转换器更灵活,可以传递除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 可能有效,但我不确定如何从 DI 注入我的 Settings
【问题讨论】:
标签: c# automapper