Ejemplo n.º 1
0
        public override object Deserialize(DmSerializer dmSerializer, Type objType, bool isDebugMode = false)
        {
            Object instance = objType.CreateInstance();

            var currentType = objType;

            while (currentType != null && currentType != typeof(Object))

            {
                List <MemberInfo> members = DmUtils.GetMembers(currentType);

                var membersValue = new object[members.Count];

                for (int i = 0; i < members.Count; i++)
                {
                    var member      = members[i];
                    var memberValue = dmSerializer.GetObject(isDebugMode);

                    if (memberValue != null)
                    {
                        member.SetValue(instance, memberValue);
                    }
                }
                currentType = currentType.GetTypeInfo().BaseType;
            }

            return(instance);
        }
Ejemplo n.º 2
0
        public override void Serialize(DmSerializer dmSerializer, object obj, Type objType)
        {
            // Get the serialized members
            var members = DmUtils.GetMembers(objType);

            //var ctorParameters = objType.GetConstructorParameters(true);
            //if (ctorParameters != null)
            //    members = DmUtils.GetMembersOrderedByParametersForConstructor(members, ctorParameters);

            foreach (MemberInfo member in members)
            {
                object memberValue = member.GetValue(obj);
                var    memberType  = member.GetMemberType();

                dmSerializer.Serialize(memberValue, memberType);
            }
        }
Ejemplo n.º 3
0
        public override object Deserialize(DmSerializer dmSerializer, Type objType, bool isDebugMode = false)
        {
            Object            instance = objType.CreateInstance();
            List <MemberInfo> members  = DmUtils.GetMembers(objType);

            var membersValue = new object[members.Count];

            for (int i = 0; i < members.Count; i++)
            {
                var member      = members[i];
                var memberValue = dmSerializer.GetObject(isDebugMode);

                if (memberValue != null)
                {
                    member.SetValue(instance, memberValue);
                }
            }


            return(instance);
        }