Esempio n. 1
0
        public byte[] GetSignature(ModuleBuilder modBuilder)
        {
            SignatureHelper sig = SignatureTools.GetSigHelper(modBuilder);

            sig.AddElement(this);
            return(sig.GetSignature());
        }
Esempio n. 2
0
        public static void AddTypeToken(this SignatureHelper signature, Type type)
        {
            var           mod  = get_m_module(signature);
            TypeConstruct tcon = type as TypeConstruct;

            if (tcon != null)            //generate TypeSpec for custom type
            {
                byte[]    sig   = BuilderTools.GetSignature(mod, tcon);
                TypeToken token = mod.GetTokenFromTypeSpec(sig);
                Sig_AddToken(signature, token.Token);
            }
            else if (type.IsByRef)             //unsupported by GetTypeToken
            {
                SignatureHelper sig = SignatureTools.GetSigHelper(mod);
                sig.AddArgument(type);
                TypeToken token = mod.GetTokenFromTypeSpec(sig.GetSignature());
                Sig_AddToken(signature, token.Token);
            }
            else
            {
                Sig_AddToken(signature, mod.GetTypeToken(type).Token);
            }
        }