When testing with X509 certificates it's sometimes hard to refer to the needed key in the certificate store. It is easier to load them from a file. The Certificates MMC snap-in allows you to export the private key to a file with the .pfx extension. This file must be protected by a password which you have to specify in the code that loads this file as the certificate to be used.
//using System.ServiceModel;
//using System.ServiceModel.Security;
//using System.Security.Cryptography.X509Certificates;
X509Certificate2 c;
c = new X509Certificate2(@"C:\x509\test.pfx", "thepassword");
WSHttpBinding b = new WSHttpBinding();
b.Security.Mode = SecurityMode.Message;
b.Security.Message.ClientCredentialType = MessageCredentialType.Certificate;
EndpointAddress ea = new EndpointAddress(new Uri("http://...:9999/UseCertificate"),
EndpointIdentity.CreateDnsIdentity("TestCert1"));
ServiceReference.ServiceClient s;
s = new ServiceReference.ServiceClient(b, ea);
s.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
s.ClientCredentials.ClientCertificate.Certificate = c;