public void GetItemForMember_NoAttribute() { Setup(); var ctx = new IntermediateMappingContext(); var member = typeof(ClassWithSkippableItem).GetProperty(nameof(ClassWithSkippableItem.Skippable)); Assert.IsNull(IntermediateReflectionMapper.GetItemForMember(ref ctx, member)); }
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); }
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); }