/// <summary> /// 注册时间类型的转换方法提供者 /// </summary> /// <param name="format">时间格式化</param> /// <param name="methodProvider">转换方法提供者</param> public static void RegisterCustomDatetimeFormat(DateTimeFormat format, IConvertMethodProvider <DateTime> methodProvider) { if (methodProvider == null) { throw new ArgumentNullException("methodProvider"); } datetimeConvertMethod[format] = methodProvider; }
public static DateTime?DateTimeParse(IDeserializerReader reader, JsonDeserializeSetting setting, string name) { IConvertMethodProvider <DateTime> customMethodProvider = CustomSerializationProvider.QueryCustomDatetimeFormat(setting.DateTimeFormat) as IConvertMethodProvider <DateTime>; if (customMethodProvider == null) { return(DateTimeMethodProvider.Default.Parse(reader, setting, reader.Read(name), true)); } return(customMethodProvider.Parse(reader, setting, reader.Read(name), true)); }
public static void Write(ISerializerWriter writer, JsonSerializeSetting setting, DateTime source) { if (DateTimeFormat.Default.Equals(setting.DateTimeFormat)) { ISO8601StyleDateMethodProvider.Default.Write(writer, setting, source); return; } if (DateTimeFormat.ChineseStyle.Equals(setting.DateTimeFormat)) { ChineseStyleDateMethodProvider.Default.Write(writer, setting, source); return; } if (DateTimeFormat.ISO8601Style.Equals(setting.DateTimeFormat)) { ISO8601StyleDateMethodProvider.Default.Write(writer, setting, source); return; } if (DateTimeFormat.MicrosoftStyle.Equals(setting.DateTimeFormat)) { MicrosoftStyleDateMethodProvider.Default.Write(writer, setting, source); return; } if (DateTimeFormat.RFC1123Style.Equals(setting.DateTimeFormat)) { RFC1123StyleDateMethodProvider.Default.Write(writer, setting, source); return; } IConvertMethodProvider <DateTime> customMethodProvider = CustomSerializationProvider.QueryCustomDatetimeFormat(setting.DateTimeFormat) as IConvertMethodProvider <DateTime>; if (customMethodProvider == null) { throw new ArgumentException("format is not defined"); } customMethodProvider.Write(writer, setting, source); }
/// <summary> /// Initializes a new instance of the <see cref="PrimitiveEnumerableProvider{T}"/> class. /// </summary> /// <param name="methodProvider">The method provider.</param> public PrimitiveEnumerableProvider(IConvertMethodProvider <T> methodProvider) { this.MethodProvider = methodProvider; }