public byte[] GetSignature(ModuleBuilder modBuilder) { SignatureHelper sig = SignatureTools.GetSigHelper(modBuilder); sig.AddElement(this); return(sig.GetSignature()); }
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); } }