private static MethodInfo FindImplicitConversionMethod(IEnumerable<MethodInfo> candidates, Type from, Type to)
{
foreach (MethodInfo m in candidates)
{
if (m.Name != "op_Implicit") continue;
if (m.ReturnType != to) continue;
ParameterInfo[] parameters = m.GetParameters();
if (parameters.Length != 1) continue;
if (!parameters[0].ParameterType.IsAssignableFrom(from)) continue;
return m;
}
return null;
}