コード例 #1
0
        IObjectGetter IFluentGetter.Instance(object instance)
        {
            var clone = _options
                        .Clone(x => x.LiteMode  = LvMode.LITE)
                        .With(x => x.StrictMode = StMode.NORMALE);

            if (_type.IsAbstract && _type.IsSealed)
            {
                return(ObjectVisitorFactoryCore.CreateForStaticType(_type, clone));
            }
            return(ObjectVisitorFactoryCore.CreateForInstance(_type, instance, clone.With(x => x.Repeatable = RpMode.NON_REPEATABLE)));
        }
コード例 #2
0
        IFluentValueGetter IFluentGetter.Value(string memberName)
        {
            if (string.IsNullOrWhiteSpace(memberName))
            {
                throw new ArgumentNullException(nameof(memberName));
            }

            _func1 = t =>
            {
                var clone = _options
                            .Clone(x => x.LiteMode  = LvMode.LITE)
                            .With(x => x.Repeatable = RpMode.NON_REPEATABLE)
                            .With(x => x.StrictMode = StMode.NORMALE);
                var visitor = ObjectVisitorFactoryCore.CreateForInstance(_type, t, clone);
                return(new ValueGetter(visitor, memberName));
            };

            return(this);
        }
コード例 #3
0
        IFluentValueGetter IFluentGetter.Value(FieldInfo fieldInfo)
        {
            if (fieldInfo is null)
            {
                throw new ArgumentNullException(nameof(fieldInfo));
            }

            _func1 = t =>
            {
                var clone = _options
                            .Clone(x => x.LiteMode  = LvMode.LITE)
                            .With(x => x.Repeatable = RpMode.NON_REPEATABLE)
                            .With(x => x.StrictMode = StMode.NORMALE);
                var visitor = ObjectVisitorFactoryCore.CreateForInstance(_type, t, clone);
                return(new ValueGetter(visitor, fieldInfo.Name));
            };

            return(this);
        }
コード例 #4
0
        IFluentValueSetter IFluentSetter.Value(PropertyInfo propertyInfo)
        {
            if (propertyInfo is null)
            {
                throw new ArgumentNullException(nameof(propertyInfo));
            }

            _func1 = (t, strictMode) =>
            {
                var clone = _options
                            .Clone(x => x.LiteMode  = LvMode.LITE)
                            .With(x => x.Repeatable = RpMode.NON_REPEATABLE)
                            .With(x => x.StrictMode = strictMode);
                var visitor = ObjectVisitorFactoryCore.CreateForInstance(_type, t, clone);
                return(new ValueSetter(visitor, propertyInfo.Name));
            };

            return(this);
        }