Esempio n. 1
0
 public void AddMemberReference(
     uint type,
     StringIdx name,
     BlobIdx signature)
 {
     _memberRefTable.Add(new MemberRefRow
     {
         Class = type,
         Name = name,
         Signature = signature
     });
 }
Esempio n. 2
0
 public void AddManifestResource(
     ManifestResourceAttributes attributes,
     StringIdx name,
     uint implementation,
     long offset)
 {
     _manifestResourceTable.Add(new ManifestResourceRow
     {
         Flags = (uint)attributes,
         Name = name,
         Implementation = implementation,
         Offset = (uint)offset
     });
 }
Esempio n. 3
0
 public void AddMethodDefinition(
     MethodAttributes attributes, 
     MethodImplAttributes implAttributes,
     StringIdx name,
     BlobIdx signature,
     int relativeVirtualAddress,
     int paramList)
 {
     _methodDefTable.Add(new MethodRow
     {
         Flags = (ushort)attributes,
         ImplFlags = (ushort)implAttributes,
         Name = name,
         Signature = signature,
         Rva = relativeVirtualAddress,
         ParamList = (uint)paramList
     });
 }
Esempio n. 4
0
 public void AddMethodImport(
     uint member,
     MethodImportAttributes attributes, 
     StringIdx name, 
     int moduleReferenceRowId)
 {
     _implMapTable.Add(new ImplMapRow
     {
         MemberForwarded = member,
         ImportName = name,
         ImportScope = (uint)moduleReferenceRowId,
         MappingFlags = (ushort)attributes,
     });
 }
Esempio n. 5
0
        public int AddGenericParameter(
            uint parent,
            GenericParameterAttributes attributes,
            StringIdx name,
            int index)
        {
            _genericParamTable.Add(new GenericParamRow
            {
                Flags = (ushort)attributes,
                Name = name,
                Number = (ushort)index,
                Owner = parent
            });

            // row id
            return _genericParamTable.Count;
        }
Esempio n. 6
0
 public void AddFieldDefinition(
     FieldAttributes attributes,
     StringIdx name,
     BlobIdx signature)
 {
     _fieldTable.Add(new FieldDefRow
     {
         Flags = (ushort)attributes,
         Name = name,
         Signature = signature
     });
 }
Esempio n. 7
0
 public void AddModuleReference(StringIdx moduleName)
 {
     _moduleRefTable.Add(new ModuleRefRow
     {
         Name = moduleName
     });
 }
Esempio n. 8
0
 public void AddAssembly(
     StringIdx name, 
     Version version,
     StringIdx culture,
     BlobIdx publicKey,
     AssemblyFlags flags,
     AssemblyHashAlgorithm hashAlgorithm)
 {
     _assemblyTable.Add(new AssemblyRow
     {
         Flags = (ushort)flags,
         HashAlgorithm = (uint)hashAlgorithm,
         Version = version,
         AssemblyKey = publicKey,
         AssemblyName = name,
         AssemblyCulture = culture
     });
 }
Esempio n. 9
0
 public void AddProperty(PropertyAttributes attributes, StringIdx name, BlobIdx signature)
 {
     _propertyTable.Add(new PropertyRow
     {
         PropFlags = (ushort)attributes,
         Name = name,
         Type = signature
     });
 }
Esempio n. 10
0
 public void AddEvent(EventAttributes attributes, StringIdx name, uint type)
 {
     _eventTable.Add(new EventRow
     {
         EventFlags = (ushort)attributes,
         Name = name,
         EventType = type
     });
 }
Esempio n. 11
0
        public int AddTypeReference(uint resolutionScope, StringIdx @namespace, StringIdx name)
        {
            Debug.Assert(@namespace != null);
            Debug.Assert(name != null);

            _typeRefTable.Add(new TypeRefRow
            {
                ResolutionScope = resolutionScope,
                Name = name,
                Namespace = @namespace
            });

            // row id
            return _typeRefTable.Count;
        }
Esempio n. 12
0
        public void AddTypeDefinition(
            TypeAttributes attributes, 
            StringIdx @namespace,
            StringIdx name,
            uint baseTypeCodedIndex,
            int fieldList,
            int methodList)
        {
            Debug.Assert(@namespace != null);
            Debug.Assert(name != null);

            _typeDefTable.Add(new TypeDefRow
            {
                Flags = (uint)attributes,
                Name = name,
                Namespace = @namespace,
                Extends = baseTypeCodedIndex,
                FieldList = (uint)fieldList,
                MethodList = (uint)methodList
            });
        }
Esempio n. 13
0
 public void AddAssemblyReference(
     StringIdx name,
     Version version,
     StringIdx culture,
     BlobIdx publicKeyOrToken,
     AssemblyFlags flags,
     BlobIdx hashValue)
 {
     _assemblyRefTable.Add(new AssemblyRefTableRow
     {
         Name = name,
         Version = version,
         Culture = culture,
         PublicKeyToken = publicKeyOrToken,
         Flags = (uint)flags,
         HashValue = hashValue
     });
 }
Esempio n. 14
0
 public void AddAssemblyFile(
     StringIdx name,
     BlobIdx hashValue,
     bool containsMetadata)
 {
     _fileTable.Add(new FileTableRow
     {
         FileName = name,
         Flags = containsMetadata ? 0u : 1u,
         HashValue = hashValue
     });
 }
Esempio n. 15
0
 public void AddParameter(ParameterAttributes attributes, StringIdx name, int sequenceNumber)
 {
     _paramTable.Add(new ParamRow
     {
         Flags = (ushort)attributes,
         Name = name,
         Sequence = (ushort)sequenceNumber
     });
 }
Esempio n. 16
0
 public void AddExportedType(
     TypeAttributes attributes,
     StringIdx @namespace,
     StringIdx name,
     uint implementation,
     int typeDefinitionId)
 {
     _exportedTypeTable.Add(new ExportedTypeRow
     {
         Flags = (uint)attributes,
         Implementation = implementation,
         TypeNamespace = @namespace,
         TypeName = name,
         TypeDefId = (uint)typeDefinitionId
     });
 }
Esempio n. 17
0
 public void AddModule(
     int generation,
     StringIdx moduleName,
     Guid mvid, 
     Guid encId, 
     Guid encBaseId)
 {
     _moduleTable.Add(new ModuleRow
     {
         Generation = (ushort)generation,
         Name = moduleName,
         ModuleVersionId = _heaps.AllocateGuid(mvid),
         EncId = _heaps.GetGuidIndex(encId),
         EncBaseId = _heaps.GetGuidIndex(encBaseId),
     });
 }