Exemplo n.º 1
0
        protected ObjectMemberCache InitializeObjectCache(object input)
        {
            var res = new ObjectMemberCache(input);

            ObjectSplitCache.Cache.Add(input, res);
            return(res);
        }
Exemplo n.º 2
0
        public static ObjectCallerBase Ctor(Type type)
        {
            if (SlimDeterminer.Check(type, out var createFromSlimService))
            {
                return(createFromSlimService);
            }

            var callerType = typeof(CompatibleObjectCaller <>).MakeGenericType(type);

            var accessor = type.CreateTypeAccessor(true);

            if (!ObjectMemberCache.TryTouch(type, out var members))
            {
                members = type.GetObjectMembers();

                ObjectMemberCache.Cache(type, members);
            }

            var @params = new object[] { accessor, members };

            return(TypeVisit.CreateInstance <ObjectCallerBase>(callerType, @params));
        }
Exemplo n.º 3
0
        protected MemberValueCache InitializeCachedValue(MemberInfo member, ObjectMemberCache memberCache)
        {
            var res = memberCache.AddMember(member);

            return(res);
        }