示例#1
0
        private CustomConverterDelegate findCustomConverterMethod(Type from, Type to)
        {
            lock (_customConvertersLock)
            {
                CustomConverterDelegate converter = null;

                if (_customConverters.TryGetValue(Tuple.Create(from, to), out converter))
                {
                    return(converter);
                }
                else
                {
                    return(null);
                }
            }
        }
示例#2
0
        /// <summary>
        /// Registers custom converter for sourceType to targetType conversion
        /// </summary>
        /// <param name="sourceType"></param>
        /// <param name="targetType"></param>
        /// <param name="converter"></param>
        public void registerCustomConverter(Type sourceType, Type targetType, CustomConverterDelegate converter)
        {
            if (sourceType == null)
            {
                throw new ArgumentNullException(nameof(sourceType));
            }
            if (targetType == null)
            {
                throw new ArgumentNullException(nameof(targetType));
            }
            if (converter == null)
            {
                throw new ArgumentNullException(nameof(converter));
            }

            lock (_customConvertersLock)
            {
                // Add customer converter. Override previous registered converters with same key.
                _customConverters[Tuple.Create(sourceType, targetType)]
                    = converter;
            }
        }
示例#3
0
 /// <summary>
 /// Registers custom converter for T_Source to T_Target conversion
 /// </summary>
 /// <typeparam name="T_Source"></typeparam>
 /// <typeparam name="T_Target"></typeparam>
 /// <param name="converter"></param>
 public void registerCustomConverter <T_Source, T_Target> (CustomConverterDelegate converter)
 {
     registerCustomConverter(typeof(T_Source), typeof(T_Target), converter);
 }