Exemplo n.º 1
0
        public void GetItemForMember_NoAttribute()
        {
            Setup();

            var ctx    = new IntermediateMappingContext();
            var member = typeof(ClassWithSkippableItem).GetProperty(nameof(ClassWithSkippableItem.Skippable));

            Assert.IsNull(IntermediateReflectionMapper.GetItemForMember(ref ctx, member));
        }
Exemplo n.º 2
0
        public void ProcessItemAttributes()
        {
            Setup();

            var ctx    = new IntermediateMappingContext();
            var member = typeof(VersionedClass).GetProperty(nameof(VersionedClass.B));

            var item = IntermediateReflectionMapper.GetItemForMember(ref ctx, member);

            Assert.AreEqual(1, item.Order);
            Assert.AreEqual(1u, item.StartVer);
            Assert.AreEqual(2u, item.EndVer);
        }
Exemplo n.º 3
0
        public static uint CreateIntermediateObjectInfo(Type type, SaveMembersMode mode, out IntermediateObjectInfo intermediateInfo)
        {
            Debug.Assert(Attribute.IsDefined(type, typeof(SaveMembersAttribute)));

            var ctx = new IntermediateMappingContext(type, mode);

            // Coming soon: Settings-based mapping
            intermediateInfo = new IntermediateObjectInfo
            {
                Members = IntermediateReflectionMapper.FillInfo(ref ctx),
                BaseMemberAttributes = GetBaseMembersAttributes(ref ctx, type)
            };

            if (ctx.TranslationCurrentOrderInfo == -1)
            {
                Array.Sort(intermediateInfo.Members);
            }

            return(ctx.HighestVersion);
        }