private static StringTransformer Guard <TVal>(GuardedValueTransformer <TVal> transformer) { return((t, v) => { if (!typeof(TVal).IsAssignableFrom(t)) { return null; } return transformer((TVal)v); }); }
internal static void RegisterFilter <TVal>(GuardedValueTransformer <TVal> filter) { if (Transformers.ContainsKey(typeof(TVal))) { Transformers[typeof(TVal)] = Guard(filter); } else { Transformers.Add(typeof(TVal), Guard(filter)); } }
private static Transformer Guard <TVal>(GuardedValueTransformer <TVal> transformer) { return((t, v) => !typeof(TVal).GetTypeInfo().IsAssignableFrom(t) ? null : transformer((TVal)v)); }
public static void RegisterFilter <TVal>(GuardedValueTransformer <TVal> filter) { Transformers.Add(Guard <TVal>(filter)); }