我很难使用自动Map器将VistingHoursDTO中的DateTime属性Map到VistingHours中的DateTimeOffset,而Map时使用的是Location或LocationDTO中的TimeZoneInfo。原因是DateTime没有偏移量。我知道如何使用DateTime和TimeZoneInfo创建DateTimeOffset。只是如果您需要另一个父Map中的属性,我不确定该如何进行Map。
澄清更新:
我需要使用位置.时区信息和日期时间Map访问小时数.打开(日期时间)-〉访问小时数.打开(日期时间偏移)。
所以;
VistingHours.Open = new DateTimeOffset(VistingHoursDTO.Open, Location.TimeZoneInfo.GetUtcOffset(VistingHoursDTO.Open))
课程:
public class Location
{
public TimeZoneInfo TimeZoneInfo { get; set; }
public IEnumerable<VisitingHours> VisitingHours { get; set; }
}
public class LocationDTO
{
public TimeZoneInfo TimeZoneInfo { get; set; }
public IEnumerable<VisitingHours> VisitingHours { get; set; }
}
public class VisitingHours
{
public DateTimeOffset Open { get; set; }
public DateTimeOffset Close { get; set; }
}
public class VisitingHoursDTO
{
public DateTime Open { get; set; }
public DateTime Close { get; set; }
}
AutoMapper代码示例(不知道如何处理它):
CreateMap<Location, LocationDTO>()
.ReverseMap();
CreateMap<VisitingHours, VisitingHoursDTO>()
.ReverseMap();
1条答案
按热度按时间ygya80vv1#
你可以使用下面的一种。
您必须根据自己的要求编写转换方法
GetOffsetFromDateTime
和GetDateTimeFromOffset
。