I'd recommend you try the Proj.NET library (a Proj4 implementation for .Net) in your application and let Proj.NET do the coordinate transformations for you. It should be compatible with Silverlight by way of C#.
Here's a blog post with a C# example showing implementation.
I took a crack at it in a simple Windows Form app. Here's a screenshot of it..

And this is the C# code I used, of course you will need to have referenced the ProjNet.dll
in your project..
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//using ProjNet.Converters; // didn't need this one
using ProjNet.Converters.WellKnownText;
using ProjNet.CoordinateSystems;
using ProjNet.CoordinateSystems.Transformations;
namespace ProjNetTest
{
public partial class projNetTestForm : Form
{
public projNetTestForm()
{
InitializeComponent();
// BassPro, Springfield MO
// long: -93.29592962, lat: 37.18069720
xTB.Text = "-93.29592962";
yTB.Text = "37.18069720";
}
private void convertButton_Click(object sender, EventArgs e)
{
// Get the NAD27 Point Coords as X(long) Y(Lat)..
double fromX = Convert.ToDouble(xTB.Text);
double fromY = Convert.ToDouble(yTB.Text);
double[] nad27Point = new double[] { fromX, fromY };
// To begin with, I tested against WGS84 coords.
// Init the WGS84 rules..
// ICoordinateSystem gcs_WGS84 = GeographicCoordinateSystem.WGS84;
// Init the NAD27 rules..
string epsg4267 = "GEOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4267\"]]";
ICoordinateSystem gcs_NAD27 = CoordinateSystemWktReader.Parse(epsg4267) as ICoordinateSystem;
// Init the WebMerc rules, and note the "gotchas!" at that link (this was eating me alive at first)..
// READ THIS:
// http://alastaira.wordpress.com/2011/01/23/the-google-maps-bing-maps-spherical-mercator-projection/
string epsg3857_HACK = "PROJCS[\"Popular Visualisation CRS / Mercator\",GEOGCS[\"Popular Visualisation CRS\",DATUM[\"WGS84\",SPHEROID[\"WGS84\", 6378137.0, 298.257223563, AUTHORITY[\"EPSG\",\"7059\"]],AUTHORITY[\"EPSG\",\"6055\"]],PRIMEM[\"Greenwich\", 0, AUTHORITY[\"EPSG\", \"8901\"]],UNIT[\"degree\", 0.0174532925199433, AUTHORITY[\"EPSG\", \"9102\"]],AXIS[\"E\", EAST], AXIS[\"N\", NORTH], AUTHORITY[\"EPSG\",\"4055\"]],PROJECTION[\"Mercator\"],PARAMETER[\"semi_minor\",6378137],PARAMETER[\"False_Easting\", 0],PARAMETER[\"False_Northing\", 0],PARAMETER[\"Central_Meridian\", 0],PARAMETER[\"Latitude_of_origin\", 0],UNIT[\"metre\", 1, AUTHORITY[\"EPSG\", \"9001\"]],AXIS[\"East\", EAST], AXIS[\"North\", NORTH],AUTHORITY[\"EPSG\",\"3785\"]]";
IProjectedCoordinateSystem gsc_WebMerc = CoordinateSystemWktReader.Parse(epsg3857_HACK) as IProjectedCoordinateSystem;
// Perform the coordinate transformation between these systems.
CoordinateTransformationFactory transformer = new CoordinateTransformationFactory();
ICoordinateTransformation coordTransform = transformer.CreateFromCoordinateSystems(gcs_NAD27, gsc_WebMerc as ICoordinateSystem);
double[] webMercPoint = coordTransform.MathTransform.Transform(nad27Point);
double webMercX = (double)webMercPoint[0];
double webMercY = (double)webMercPoint[1];
resultTB.Text = "X: " + webMercX.ToString() + "\r\nY: " + webMercY.ToString();
}
}
}
And finally, here is where QGIS, with the Bing aerial (OpenLayers plugin) shows my point computation. I hovered my mouse over the position in question so it appears in the status area, below:

If you want to compare it with where Google places that Lat/Long, this is the link: http://maps.google.com/?ll=37.18069720,-93.29592962
y = (R/2) [log((1 + sin(phi)) / (1 - sin(phi))) - e log((1 + e sin(phi)) / (1 - e sin(phi)))]
wheree
, the eccentricity, equalssqrt(2f-f^2)
= 0.081819190842621 andR
is the semi-major axis, 6378137.0 m. As before,phi
is the (geodetic) latitude. The x formula uses the same value ofR
as the y formula.