private FunctionActivity ParseActivity(XElement data)
{
var typeName = (string)data.Attribute("Type");
if (string.IsNullOrEmpty(typeName)) return null;
var factory = ActivityFactories.FirstOrDefault(f => f.Metadata.TypeName == typeName);
if (factory == null) return null;
var activity = factory.CreateExport().Value;
activity.LoadXml(data);
return activity;
}