System.Reflection.Module.ResolveSignature C# (CSharp) Method

ResolveSignature() public method

public ResolveSignature ( int metadataToken ) : byte[]
metadataToken int
return byte[]
        public byte[] ResolveSignature(int metadataToken)
        {
            MetadataToken tk = new MetadataToken(metadataToken);

            if (!MetadataImport.IsValidToken(tk))
                throw new ArgumentOutOfRangeException("metadataToken",
                    String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_InvalidToken", tk, this)));

            if (!tk.IsMemberRef && !tk.IsMethodDef && !tk.IsTypeSpec && !tk.IsSignature && !tk.IsFieldDef)
                throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_InvalidToken", tk, this)),
                                            "metadataToken");

            ConstArray signature;
            if (tk.IsMemberRef)
                signature = MetadataImport.GetMemberRefProps(metadataToken);
            else
                signature = MetadataImport.GetSignatureFromToken(metadataToken);

            byte[] sig = new byte[signature.Length];

            for (int i = 0; i < signature.Length; i++)
                sig[i] = signature[i];

            return sig;
        }

Usage Example

Esempio n. 1
0
        /// <summary>Returns the signature blob identified by a metadata token.</summary>
        /// <returns>An array of bytes representing the signature blob.</returns>
        /// <param name="metadataToken">A metadata token that identifies a signature in the module.</param>
        /// <exception cref="T:System.ArgumentException">
        ///   <paramref name="metadataToken" /> is not a valid MemberRef, MethodDef, TypeSpec, signature, or FieldDef token in the scope of the current module.</exception>
        /// <exception cref="T:System.ArgumentOutOfRangeException">
        ///   <paramref name="metadataToken" /> is not a valid token in the scope of the current module.</exception>
        public byte[] ResolveSignature(int metadataToken)
        {
            ResolveTokenError error;

            byte[] array = Module.ResolveSignature(this._impl, metadataToken, out error);
            if (array == null)
            {
                throw this.resolve_token_exception(metadataToken, error, "signature");
            }
            return(array);
        }
All Usage Examples Of System.Reflection.Module::ResolveSignature