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); }
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); }