private void GetOrderedExports(object currentObject, List<object> exportList, HashSet<object> visited)
{
if (currentObject == null || !visited.Add(currentObject))
return;
// constructor dependencies
if (!(currentObject is Type) && !(currentObject is string))
GetOrderedExports(currentObject.GetType(), exportList, visited);
FormalArgument formalArgument = currentObject as FormalArgument;
if (formalArgument != null)
{
GetOrderedExports(formalArgument.DefaultValueToken, exportList, visited);
}
exportList.Add(currentObject);
}