I recently had to setup some web services that used certificates to communicate back and forth and one thing I found is that pretty much every site I found references on was using a file on the file system to access the client certificate. What we wanted to do was access the certificates directly from the store. After a little playing around we got it to work, so I though I would put this out in case someone else wants to do the same. There is another X509Certificate2Collection item at MSDN, however the one for the X509Certificate2 only shows getting the file.
private X509Certificate GetCertificate()
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindBySerialNumber, "123456", true);
There are several ways to do the search, I like the FindBySerialNumber, but you can also search by DN, SubjectName, etc.