Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
 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);
 }