public static FutureInstanceVisitor <T> CreateForFutureInstance <T, TStrategy>(ObjectVisitorOptions options, IDictionary <string, object> initialValues = null) where TStrategy : class, IValidationStrategy <T>, new() { options ??= ObjectVisitorOptions.Default; var handler = UnsafeObjectHandleSwitcher.Switch <T>(options.AlgorithmKind)().With <T>(); var visitor = new FutureInstanceVisitor <T>(handler, options, initialValues); visitor.VerifiableEntry.SetStrategy <TStrategy>(); return(visitor); }
public static FutureInstanceVisitor CreateForFutureInstance <TStrategy>(Type type, ObjectVisitorOptions options, TStrategy strategy, IDictionary <string, object> initialValues = null) where TStrategy : class, IValidationStrategy, new() { options ??= ObjectVisitorOptions.Default; var handler = SafeObjectHandleSwitcher.Switch(options.AlgorithmKind)(type); var visitor = new FutureInstanceVisitor(handler, type, options, initialValues); visitor.VerifiableEntry.SetStrategy(strategy); return(visitor); }