static object Convert(object target, object value, BindableProperty property) { var serviceProvider = new StyleSheetServiceProvider(target, property); Func <MemberInfo> minforetriever = () => { MemberInfo minfo = null; try { minfo = property.DeclaringType.GetRuntimeProperty(property.PropertyName); } catch (AmbiguousMatchException e) { throw new XamlParseException($"Multiple properties with name '{property.DeclaringType}.{property.PropertyName}' found.", serviceProvider, innerException: e); } if (minfo != null) { return(minfo); } try { return(property.DeclaringType.GetRuntimeMethod("Get" + property.PropertyName, new[] { typeof(BindableObject) })); } catch (AmbiguousMatchException e) { throw new XamlParseException($"Multiple methods with name '{property.DeclaringType}.Get{property.PropertyName}' found.", serviceProvider, innerException: e); } }; return(value.ConvertTo(property.ReturnType, minforetriever, serviceProvider)); }
static object Convert(object target, object value, BindableProperty property) { Func <MemberInfo> minforetriever = () => property.DeclaringType.GetRuntimeProperty(property.PropertyName) as MemberInfo ?? property.DeclaringType.GetRuntimeMethod("Get" + property.PropertyName, new[] { typeof(BindableObject) }) as MemberInfo; var serviceProvider = new StyleSheetServiceProvider(target, property); return(value.ConvertTo(property.ReturnType, minforetriever, serviceProvider)); }
static object Convert(object target, object value, BindableProperty property) { var serviceProvider = new StyleSheetServiceProvider(target, property); Func<MemberInfo> minforetriever = () => { MemberInfo minfo = null; try { minfo = property.DeclaringType.GetRuntimeProperty(property.PropertyName); } catch (AmbiguousMatchException e) { <<<<<<< HEAD throw new XamlParseException($"Multiple properties with name '{property.DeclaringType}.{property.PropertyName}' found.", serviceProvider, innerException: e);