public ITypeDescriptor CloneAndMapNestedTypes(ITypeDescriptorCallbacks typeSerializers, Func <ITypeDescriptor, ITypeDescriptor> map) { var tds = new ITypeDescriptor[_fields.Count]; for (var i = 0; i < _fields.Count; i++) { tds[i] = map(_fields[i].Value); } if (typeSerializers == _typeSerializers && tds.SequenceEqual(_fields.Select(i => i.Value))) { return(this); } var nfs = new List <KeyValuePair <string, ITypeDescriptor> >(tds.Length); for (var i = 0; i < _fields.Count; i++) { nfs.Add(new KeyValuePair <string, ITypeDescriptor>(_fields[i].Key, tds[i])); } return(new ObjectTypeDescriptor(typeSerializers, _name, Sealed, nfs)); }
public ITypeDescriptor CloneAndMapNestedTypes(ITypeDescriptorCallbacks typeSerializers, Func<ITypeDescriptor, ITypeDescriptor> map) { var tds = new ITypeDescriptor[_fields.Count]; for (var i = 0; i < _fields.Count; i++) { tds[i] = map(_fields[i].Value); } if (typeSerializers == _typeSerializers && tds.SequenceEqual(_fields.Select(i => i.Value))) return this; var nfs = new List<KeyValuePair<string, ITypeDescriptor>>(tds.Length); for (var i = 0; i < _fields.Count; i++) { nfs.Add(new KeyValuePair<string, ITypeDescriptor>(_fields[i].Key,tds[i])); } return new ObjectTypeDescriptor(typeSerializers, _name, Sealed, nfs); }