// get custom attributes in xml format
IWFWorkflowService svc = GetWorkflowService();
string customID = …// for example, "013933F128C3415F81D6F545594D4CB6";
try
	{
    string xml = svc.GetCustomAttrs(sessionID, string processInstanceID);
    Console.WriteLine("AttributeXMLstring={0}",resultAttrXML);
    WFCustomAttributes attrs = new WFCustomAttributes();
    attrs.AttrXml = xml; // de-serialize xml
    string[] attributeNames = attrs.GetNames();// get attribute names
    Object value = attrs["MyAttributeName"]; // retrieve attribute value
	}
catch (Exception ex)
	{
    Console.WriteLine("Failed! " + ShUtil.GetSoapMessage(ex));
	}