コード例 #1
0
        public static CollectionSettingsValue Merge(CollectionSettingsValue baseValue, CollectionSettingsValue derivedValue)
        {
            var r = derivedValue;

            if (r.Format == CollectionFormat.NotSpecified)
            {
                r.Format = baseValue.Format;
            }
            if (r.ConcreteType == null)
            {
                r.ConcreteType = baseValue.ConcreteType;
            }
            if (r.ItemType == null)
            {
                r.ItemType = baseValue.ItemType;
            }
            if (r.PackedWireTypeForRead == null)
            {
                r.PackedWireTypeForRead = baseValue.PackedWireTypeForRead;
            }
            if (r.Append == null)
            {
                r.Append = baseValue.Append;
            }
            if (r.ArrayLengthReadLimit != null)
            {
                r.ArrayLengthReadLimit = baseValue.ArrayLengthReadLimit;
            }
            return(r);
        }
コード例 #2
0
        public static MemberLevelSettingsValue Merge(MemberLevelSettingsValue baseValue, MemberLevelSettingsValue derivedValue)
        {
            var r = derivedValue;

            if (r.Format == ValueFormat.NotSpecified)
            {
                r.Format = baseValue.Format;
            }
            if (r.ContentBinaryFormatHint == null)
            {
                r.ContentBinaryFormatHint = baseValue.ContentBinaryFormatHint;
            }
            if (r.WriteAsDynamicType == null)
            {
                r.WriteAsDynamicType = baseValue.WriteAsDynamicType;
            }
            if (r.DefaultsMode == null)
            {
                r.DefaultsMode = baseValue.DefaultsMode;
            }
            r.Collection = CollectionSettingsValue.Merge(baseValue.Collection, derivedValue.Collection);
            return(r);
        }