public ITypeDescriptor CloneAndMapNestedTypes(ITypeDescriptorCallbacks typeSerializers, Func<ITypeDescriptor, ITypeDescriptor> map) { var keyDesc = map(_keyDescriptor); var valueDesc = map(_valueDescriptor); if (_typeSerializers == typeSerializers && keyDesc == _keyDescriptor && valueDesc == _valueDescriptor) return this; return new DictionaryTypeDescriptor(typeSerializers, keyDesc, valueDesc); }