private object ConvertMultiHop(Type signature, object app)
{
foreach (KeyValuePair<Tuple<Type, Type>, Delegate> conversion in _conversions)
{
object preConversion = ConvertOneHop(conversion.Key.Item2, app);
if (preConversion == null)
{
continue;
}
object intermediate = conversion.Value.DynamicInvoke(preConversion);
if (intermediate == null)
{
continue;
}
object postConversion = ConvertOneHop(signature, intermediate);
if (postConversion == null)
{
continue;
}
return postConversion;
}
return null;
}