private void MergeBehaviorOverrides(DictionaryAdapterMeta meta) { if (Descriptor == null) { return; } var typeDescriptor = Descriptor as DictionaryDescriptor; if (typeDescriptor != null) { Initializers = Initializers.Prioritize(typeDescriptor.Initializers).ToArray(); } Properties = new Dictionary <string, PropertyDescriptor>(); foreach (var property in meta.Properties) { var propertyDescriptor = property.Value; var propertyOverride = new PropertyDescriptor(propertyDescriptor, false) .AddKeyBuilders(propertyDescriptor.KeyBuilders.Prioritize(Descriptor.KeyBuilders)) .AddGetters(propertyDescriptor.Getters.Prioritize(Descriptor.Getters)) .AddSetters(propertyDescriptor.Setters.Prioritize(Descriptor.Setters)); Properties.Add(property.Key, propertyOverride); } }