Consumir ws desde .Net para enviar un xml firmado con .pfx

Estoy tratando de enviar un xml firmado con clave. Pfx mediante un WS
https://efactura.dgi.gub.uy:6443/ePrueba/ws_eprueba?wsdl 
Dicho xml está bien firmado porque lo envío mediante SoapUi y es aceptado como bueno. Yo estoy usando Visual 2010. Mi código en C# es

        private void button1_Click(object sender, EventArgs e)
        {
            EnviarWS_3.Servicio.WS_eFacturaSoapPortClient x1 = new EnviarWS_3.Servicio.WS_eFacturaSoapPortClient();
            String ClaveDelCertificado = "Prueba.01";
            string certPath;
            certPath = Path.Combine(@"G:\A-enviar\", "PKPrueba - EMPRESA.pfx");
              X509Certificate2 Certificado= new X509Certificate2(certPath, ClaveDelCertificado,X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet); 
            x1.ClientCredentials.ClientCertificate.Certificate=Certificado;
            //x1.ClientCredentials.UseIdentityConfiguration=true;
            EnviarWS_3.Servicio.Data xEnviar = new EnviarWS_3.Servicio.Data();
            EnviarWS_3.Servicio.Data xRecibir = new EnviarWS_3.Servicio.Data();
            String Sobre_cCFE = @"G:\A-enviar\Sobre17_09_13T20_51_52.xml";
        StringBuilder newFile=new StringBuilder();
        string[] campo = File.ReadAllLines(Sobre_cCFE);
        foreach (string line in campo)
        {
            newFile.Append(line + "\n");
        }
        string vari;
        vari = newFile.ToString();
        xEnviar.xmlData = vari;
            xEnviar.xmlData = Sobre_cCFE;
             string otra= xEnviar.xmlData;
            try
            {
                xRecibir = x1.EFACRECEPCIONSOBRE(xEnviar);
           }
            catch (Exception ElErr)
            {
                MessageBox.Show(ElErr.Message);
            }
        }

Estoy convencido que estoy haciendo algo MUY mal pero no logro hacerlo caminar.
¿Me pueden dar una mano

Añade tu respuesta

Haz clic para o