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