Пример #1
0
 public TypeConverter(
     AsyncConversion conversion,
     CanConvert canConvert)
 {
     Conversion = conversion;
     CanConvert = canConvert;
 }
Пример #2
0
 public static void RegisterFileConverter(
     Conversion conversion,
     CanConvert canConvert)
 {
     Guard.AgainstNull(conversion, nameof(conversion));
     RegisterFileConverter(
         (o, settings) => Task.FromResult(conversion(o, settings)),
         canConvert);
 }
Пример #3
0
 public TypeConverter(
     string toExtension,
     AsyncConversion conversion,
     CanConvert canConvert)
 {
     ToExtension = toExtension;
     Conversion  = conversion;
     CanConvert  = canConvert;
 }
Пример #4
0
 public static void RegisterFileConverter <T>(
     string toExtension,
     Conversion <T> conversion,
     CanConvert <T>?canConvert = null)
 {
     Guard.AgainstNull(conversion, nameof(conversion));
     RegisterFileConverter(
         toExtension,
         (o, settings) => Task.FromResult(conversion(o, settings)),
         canConvert);
 }
Пример #5
0
        public static void RegisterFileConverter <T>(
            AsyncConversion <T> conversion,
            CanConvert <T>?canConvert = null)
        {
            Guard.AgainstNull(conversion, nameof(conversion));
            var converter = new TypeConverter(
                (o, settings) => conversion((T)o, settings),
                DefaultCanConvert(canConvert));

            typedConverters.Add(converter);
        }
Пример #6
0
        public static void RegisterFileConverter(
            AsyncConversion conversion,
            CanConvert canConvert)
        {
            Guard.AgainstNull(conversion, nameof(conversion));
            Guard.AgainstNull(canConvert, nameof(canConvert));
            var converter = new TypeConverter(
                conversion,
                canConvert);

            typedConverters.Add(converter);
        }
Пример #7
0
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = CanConvert.GetHashCode();
         hashCode = (hashCode * 397) ^ (SameType != null ? SameType.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ CantConvert.GetHashCode();
         hashCode = (hashCode * 397) ^ (SubclassAndClass != null ? SubclassAndClass.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (FirstName != null ? FirstName.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ AnotherNumberCanConvert.GetHashCode();
         hashCode = (hashCode * 397) ^ (CantAssign != null ? CantAssign.GetHashCode() : 0);
         return(hashCode);
     }
 }
Пример #8
0
        static CanConvert DefaultCanConvert <T>(CanConvert <T>?canConvert)
        {
            if (canConvert == null)
            {
                return(target => target is T);
            }

            return(target =>
            {
                if (target is T cast)
                {
                    return canConvert(cast);
                }

                return false;
            });
        }