public virtual void Visit(CustomAttributeNamedArgumentCollection arguments)
 {
     for (int i = 0; i < arguments.Count; i++)
     {
         Visit(arguments[i]);
     }
 }
 public void CopyTo(CustomAttributeNamedArgumentCollection copy)
 {
     foreach (var item in this)
     {
         copy.Add(item);
     }
 }
예제 #3
0
 public virtual void Build(CustomAttributeNamedArgumentCollection arguments)
 {
     for (int i = 0; i < arguments.Count; i++)
     {
         var argument = arguments[i];
         if (Build(ref argument))
         {
             arguments[i] = argument;
         }
     }
 }
        protected void Load(IBinaryAccessor accessor)
        {
            int    typeLength = accessor.ReadCompressedInteger();
            string typeName   = accessor.ReadString(typeLength, Encoding.UTF8);

            _type = TypeSignature.Parse(typeName, true) as TypeReference;
            if (_type == null)
            {
                throw new InvalidDataException();
            }

            _type = (TypeReference)_type.Relocate(_module);

            accessor.ReadCompressedInteger();             // Blob size

            int argumentCount = accessor.ReadCompressedInteger();

            _namedArguments = new CustomAttributeNamedArgumentCollection(this);
            _namedArguments.Load(accessor, argumentCount);
        }
        protected void Load(IBinaryAccessor accessor)
        {
            // The encoded blob begins with the prolog, which is always the 2-byte value 0x0001.
            // This is actually the version of the custom attribute blob encoding scheme, which hasn't changed
            // since its introduction, so the prolog is the same for all existing versions of the runtime.
            short prolog = accessor.ReadInt16();

            if (prolog != 1)
            {
                throw new CodeModelException(string.Format(SR.AssemblyLoadError, _module.Location));
            }

            // Ctor arguments.
            _ctorArguments = new CustomAttributeCtorArgumentCollection(this);
            _ctorArguments.Load(accessor);

            // Named arguments.
            _namedArguments = new CustomAttributeNamedArgumentCollection(this);
            _namedArguments.Load(accessor);
        }