public void RowEnumerationTest()
        {
            var rawRow = new uint[] { 0x0000, 0x001, 0x01DD };
            var row    = new ParameterDefinitionRow((ParameterAttributes)rawRow[0], (ushort)rawRow[1], rawRow[2]);

            RowTestUtils.VerifyRowColumnEnumeration(rawRow, row);
        }
        /// <summary>
        /// Creates a parameter definition from a parameter metadata row.
        /// </summary>
        /// <param name="parentModule"></param>
        /// <param name="token">The token to initialize the parameter for.</param>
        /// <param name="row">The metadata table row to base the parameter definition on.</param>
        public SerializedParameterDefinition(SerializedModuleDefinition parentModule, MetadataToken token, ParameterDefinitionRow row)
            : base(token)
        {
            _parentModule = parentModule ?? throw new ArgumentNullException(nameof(parentModule));
            _row          = row;

            Sequence   = row.Sequence;
            Attributes = row.Attributes;
        }
Beispiel #3
0
        /// <summary>
        /// Allocates metadata rows for the provided parameter definitions in the buffer.
        /// </summary>
        /// <param name="parameters">The parameters to define.</param>
        public void DefineParameters(IEnumerable <ParameterDefinition> parameters)
        {
            var table = Metadata.TablesStream.GetTable <ParameterDefinitionRow>(TableIndex.Param);

            foreach (var parameter in parameters)
            {
                var row = new ParameterDefinitionRow(
                    parameter.Attributes,
                    parameter.Sequence,
                    Metadata.StringsStream.GetStringIndex(parameter.Name));

                var token = table.Add(row);
                _tokenMapping.Register(parameter, token);
            }
        }