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