public static StaticTypeObjectVisitor CreateForStaticType(Type type, ObjectVisitorOptions options)
        {
            options ??= ObjectVisitorOptions.Default;
            var handler = SafeObjectHandleSwitcher.Switch(options.AlgorithmKind)(type);

            return(new StaticTypeObjectVisitor(handler, type, options));
        }
        public static InstanceVisitor CreateForInstance(Type type, object instance, ObjectVisitorOptions options)
        {
            options ??= ObjectVisitorOptions.Default;
            var handler = SafeObjectHandleSwitcher.Switch(options.AlgorithmKind)(type).AndSetInstance(instance);

            return(new InstanceVisitor(handler, type, options));
        }
        public static FutureInstanceVisitor CreateForFutureInstance(Type type, ObjectVisitorOptions options, IDictionary <string, object> initialValues = null)
        {
            options ??= ObjectVisitorOptions.Default;
            var handler = SafeObjectHandleSwitcher.Switch(options.AlgorithmKind)(type);

            return(new FutureInstanceVisitor(handler, type, options, initialValues));
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }