コード例 #1
0
ファイル: MetadataTokens.cs プロジェクト: dox0/DotNet471RS3
        /// <summary>
        /// Creates a handle from a token value.
        /// </summary>
        /// <exception cref="ArgumentException">
        /// <paramref name="token"/> is not a valid metadata token.
        /// It must encode a metadata table entity or an offset in <see cref="HandleKind.UserString"/> heap.
        /// </exception>
        public static Handle Handle(int token)
        {
            if (!TokenTypeIds.IsEntityOrUserStringToken(unchecked ((uint)token)))
            {
                Throw.InvalidToken();
            }

            return(Metadata.Handle.FromVToken((uint)token));
        }
コード例 #2
0
        /// <summary>
        /// Creates an <see cref="Metadata.EntityHandle"/> from a token value.
        /// </summary>
        /// <exception cref="ArgumentException">
        /// <paramref name="tableIndex"/> is not a valid table index.</exception>
        public static EntityHandle Handle(TableIndex tableIndex, int rowNumber)
        {
            int token = ((int)tableIndex << TokenTypeIds.RowIdBitCount) | rowNumber;

            if (!TokenTypeIds.IsEntityOrUserStringToken(unchecked ((uint)token)))
            {
                Throw.TableIndexOutOfRange();
            }

            return(new EntityHandle((uint)token));
        }