/// <summary> /// Creates a generic parameter from a generic parameter metadata row. /// </summary> /// <param name="parentModule">The module that contains the generic parameter.</param> /// <param name="token">The token to initialize the generic parameter for.</param> /// <param name="row">The metadata table row to base the generic parameter on.</param> public SerializedGenericParameter(SerializedModuleDefinition parentModule, MetadataToken token, GenericParameterRow row) : base(token) { _parentModule = parentModule ?? throw new ArgumentNullException(nameof(parentModule)); _row = row; Attributes = _row.Attributes; Number = row.Number; }
private void DefineGenericParameter(MetadataToken ownerToken, GenericParameter parameter) { if (parameter is null || !AssertIsImported(parameter)) { return; } var table = Metadata.TablesStream.GetSortedTable <GenericParameter, GenericParameterRow>(TableIndex.GenericParam); var encoder = Metadata.TablesStream.GetIndexEncoder(CodedIndex.TypeOrMethodDef); var row = new GenericParameterRow( parameter.Number, parameter.Attributes, encoder.EncodeToken(ownerToken), Metadata.StringsStream.GetStringIndex(parameter.Name)); table.Add(parameter, row); }