Пример #1
0
 /// <summary>
 /// 添加将对象从 <typeparamref name="TInput"/> 类型转换为 <typeparamref name="TOutput"/> 类型的转换器。
 /// </summary>
 /// <param name="converter">将对象从 <typeparamref name="TInput"/> 类型转换为
 /// <typeparamref name="TOutput"/> 类型的转换器。</param>
 /// <exception cref="ArgumentNullException"><paramref name="converter"/> 为 <c>null</c>。</exception>
 /// <remarks><paramref name="converter"/> 不会覆盖预定义的隐式、显式类型转换和用户自定义的类型转换。
 /// 对于相同输入/输出类型的 <paramref name="converter"/>,后设置的会覆盖先设置的,以及任何
 /// <see cref="IConverterProvider"/> 提供的类型转换方法。</remarks>
 public static void AddConverter <TInput, TOutput>(Converter <TInput, TOutput> converter)
 {
     if (converter == null)
     {
         throw CommonExceptions.ArgumentNull("converter");
     }
     Contract.EndContractBlock();
     ConversionFactory.AddConverterProvider(new ConverterProvider(converter, typeof(TInput), typeof(TOutput)));
 }
Пример #2
0
 /// <summary>
 /// 添加指定的类型转换器提供者。
 /// </summary>
 /// <param name="provider">要添加的类型转换器提供者。</param>
 /// <exception cref="ArgumentNullException"><paramref name="provider"/> 为 <c>null</c>。</exception>
 /// <exception cref="ArgumentNullException"><paramref name="provider"/> 的源类型为 <c>null</c>。</exception>
 /// <remarks><paramref name="provider"/> 提供的类型转换方法不会覆盖预定义的隐式、显式类型转换和用户自定义的类型转换,
 /// 以及任何通过 <see cref="AddConverter{TInput, TOutput}"/> 方法设置的类型转换方法。
 /// 对于相同源类型的 <see cref="IConverterProvider"/>,<see cref="IConverterProvider.GetConverterTo"/>
 /// 方法提供的类型转换方法优先级更高,且后设置的优先级更高。</remarks>
 public static void AddConverterProvider(IConverterProvider provider)
 {
     CommonExceptions.CheckArgumentNull(provider, nameof(provider));
     if (provider.OriginType == null)
     {
         throw CommonExceptions.ArgumentNull(nameof(provider));
     }
     Contract.EndContractBlock();
     ConversionFactory.AddConverterProvider(provider);
 }
Пример #3
0
 /// <summary>
 /// 添加指定的类型转换器提供者。
 /// </summary>
 /// <param name="provider">要添加的类型转换器提供者。</param>
 /// <exception cref="ArgumentNullException"><paramref name="provider"/> 为 <c>null</c>。</exception>
 /// <exception cref="ArgumentNullException"><paramref name="provider"/> 的源类型为 <c>null</c>。</exception>
 /// <remarks><paramref name="provider"/> 提供的类型转换方法不会覆盖预定义的隐式、显式类型转换和用户自定义的类型转换,
 /// 以及任何通过 <see cref="AddConverter{TInput, TOutput}"/> 方法设置的类型转换方法。
 /// 对于相同源类型的 <see cref="IConverterProvider"/>,<see cref="IConverterProvider.GetConverterTo"/>
 /// 方法提供的类型转换方法优先级更高,且后设置的优先级更高。</remarks>
 public static void AddConverterProvider(IConverterProvider provider)
 {
     if (provider == null)
     {
         throw CommonExceptions.ArgumentNull("provider");
     }
     if (provider.OriginType == null)
     {
         throw CommonExceptions.ArgumentNull("provider.OriginType");
     }
     Contract.EndContractBlock();
     ConversionFactory.AddConverterProvider(provider);
 }
Пример #4
0
 /// <summary>
 /// 添加将对象从 <typeparamref name="TInput"/> 类型转换为 <typeparamref name="TOutput"/> 类型的转换器。
 /// </summary>
 /// <typeparam name="TInput">输入对象的类型。</typeparam>
 /// <typeparam name="TOutput">输出对象的类型。</typeparam>
 /// <param name="converter">将对象从 <typeparamref name="TInput"/> 类型转换为
 /// <typeparamref name="TOutput"/> 类型的转换器。</param>
 /// <exception cref="ArgumentNullException"><paramref name="converter"/> 为 <c>null</c>。</exception>
 /// <remarks><paramref name="converter"/> 不会覆盖预定义的隐式、显式类型转换和用户自定义的类型转换。
 /// 对于相同输入/输出类型的 <paramref name="converter"/>,后设置的会覆盖先设置的,以及任何
 /// <see cref="IConverterProvider"/> 提供的类型转换方法。</remarks>
 public static void AddConverter <TInput, TOutput>(Converter <TInput, TOutput> converter)
 {
     CommonExceptions.CheckArgumentNull(converter, nameof(converter));
     Contract.EndContractBlock();
     ConversionFactory.AddConverterProvider(new ConverterProvider(converter, typeof(TInput), typeof(TOutput)));
 }