public static StaticTypeLeoVisitor <T> CreateForStaticType <T, TStrategy>(AlgorithmKind kind, bool liteMode, bool strictMode) where TStrategy : class, ILeoValidationStrategy <T>, new() { var handler = UnsafeLeoHandleSwitcher.Switch <T>(kind)().With <T>(); var visitor = new StaticTypeLeoVisitor <T>(handler, kind, liteMode, strictMode); visitor.ValidationEntry.SetStrategy <TStrategy>(); return(visitor); }
public static StaticTypeLeoVisitor CreateForStaticType <TStrategy>(Type type, AlgorithmKind kind, bool liteMode, TStrategy strategy, bool strictMode) where TStrategy : class, ILeoValidationStrategy, new() { var handler = SafeLeoHandleSwitcher.Switch(kind)(type); var visitor = new StaticTypeLeoVisitor(handler, type, kind, liteMode, strictMode); visitor.ValidationEntry.SetStrategy(strategy); return(visitor); }