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