예제 #1
0
        protected override TypeAttributeHandlerResult TryMap(AttributeMap item, TypeState s, TypeArgsValue a, RuntimeTypeModel model)
        {
            if (a.HasFamily(MetaType.AttributeFamily.Aqla) && CheckAqlaModelId(item, model))
            {
                var attr = item.GetRuntimeAttribute <SerializableTypeAttribute>(model);
                s.SettingsValue = attr.TypeSettings;

                s.ImplicitOnlyWriteable = attr.ImplicitOnlyWriteable;
                s.DataMemberOffset      = attr.DataMemberOffset;
                if (attr.InferTagFromNameHasValue)
                {
                    s.InferTagByName = attr.InferTagFromName;
                }
                s.ImplicitFields = attr.ImplicitFields;
                if (attr.ImplicitFirstTag != 0)
                {
                    s.ImplicitFirstTag = attr.ImplicitFirstTag;
                }

                if (s.ImplicitFields != ImplicitFieldsMode.None)
                {
                    s.ImplicitAqla = true;
                }

                return(TypeAttributeHandlerResult.Done);
            }
            return(TypeAttributeHandlerResult.Continue);
        }