public TypeConverter( AsyncConversion conversion, CanConvert canConvert) { Conversion = conversion; CanConvert = canConvert; }
public static void RegisterFileConverter( Conversion conversion, CanConvert canConvert) { Guard.AgainstNull(conversion, nameof(conversion)); RegisterFileConverter( (o, settings) => Task.FromResult(conversion(o, settings)), canConvert); }
public TypeConverter( string toExtension, AsyncConversion conversion, CanConvert canConvert) { ToExtension = toExtension; Conversion = conversion; CanConvert = canConvert; }
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); }
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); }
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); }
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); } }
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; }); }