Segue código:
NFeS.Betha.NFSe.cabecalho cabec = new NFeS.Betha.NFSe.cabecalho();
cabec.versao = "2.02";
cabec.versaoDados = "2.02";
Serializacao<NFeS.Betha.NFSe.cabecalho> serializarCabec = new Serializacao<NFeS.Betha.NFSe.cabecalho>();
string strXMLCabec = serializarCabec.SerializeMeToString(cabec);
NFeS.Betha.NFSe.tcIdentificacaoTomador tomador = new NFeS.Betha.NFSe.tcIdentificacaoTomador();
NFeS.Betha.NFSe.tcCpfCnpj tpCNPJ = new NFeS.Betha.NFSe.tcCpfCnpj();
tpCNPJ.ItemElementName = NFeS.Betha.NFSe.ItemChoiceType.Cnpj;
tpCNPJ.Item = n.eCNPJ;
tomador.CpfCnpj = tpCNPJ;
tomador.InscricaoMunicipal = IM;
NFeS.Betha.NFSe.ConsultarNfseServicoPrestadoEnvioPeriodoEmissao PeriodoEmissao = new NFeS.Betha.NFSe.ConsultarNfseServicoPrestadoEnvioPeriodoEmissao();
PeriodoEmissao.DataInicial = DateTime.Parse("01/09/2016");
PeriodoEmissao.DataFinal = DateTime.Now;
NFeS.Betha.NFSe.ConsultarNfseServicoTomadoEnvio consulta = new NFeS.Betha.NFSe.ConsultarNfseServicoTomadoEnvio();
consulta.NumeroNfse = "407";
consulta.Tomador = tomador;
Serializacao<NFeS.Betha.NFSe.ConsultarNfseServicoTomadoEnvio> serializar = new Serializacao<NFeS.Betha.NFSe.ConsultarNfseServicoTomadoEnvio>();
string strXML = serializar.SerializeMeToString(consulta);
X509Certificate2 certificado = null;
foreach (X509Certificate2 c in col)
{
if (c.HasPrivateKey)
{
certificado = c;
}
}
NFeS.Assinar assina = new NFeS.Assinar();
string XMLdoc = assina.AssinarArquivo(strXML, certificado).InnerXml;
NFeS.Betha.NFSe.NfseWSService comunica = new NFeS.Betha.NFSe.NfseWSService();
comunica.ClientCertificates.AddRange(col);
NFeS.Betha.NFSe.ConsultarNfseServicoTomado dados = new NFeS.Betha.NFSe.ConsultarNfseServicoTomado();
dados.nfseCabecMsg = strXMLCabec;
dados.nfseDadosMsg = XMLdoc;
NFeS.Betha.NFSe.ConsultarNfseServicoTomadoResponse retorno = comunica.ConsultarNfseServicoTomado(dados);