Sorry, this wasn't intended and we'll have an update in a future release.As a work-around for now, set the Fields property on the FeatureSet, prior to calling the worker thread, and you should be good to go. Example:
FeatureSet fs = new FeatureSet()
{
Fields = new List<Field>() //or FeatureLayer.LayerInfo.Fields
};
fs.Features.Add(new ESRI.ArcGIS.Client.Graphic() { Attributes = { { "ID", "1" } }, Geometry = new ESRI.ArcGIS.Client.Geometry.MapPoint(1, 2) });
System.ComponentModel.BackgroundWorker worker = new System.ComponentModel.BackgroundWorker();
worker.DoWork += (a, b) =>
{
FeatureSet fs2 = (FeatureSet)b.Argument;
b.Result = fs2.ToJson();
};
worker.RunWorkerCompleted += (a, b) =>
{
MessageBox.Show(b.Result.ToString());
};
worker.RunWorkerAsync(fs);
Sorry for the inconvenience this might have caused you.