C# `ExportRenderer上的System.Reflection.TargetInvocationExceptionExportRenderer`
我尝试为C# `ExportRenderer上的System.Reflection.TargetInvocationExceptionExportRenderer`,c#,xamarin,xamarin.forms,xamarin.android,C#,Xamarin,Xamarin.forms,Xamarin.android,我尝试为编辑器实现自定义渲染,并按照说明操作,只是使用编辑器而不是条目: 在Xamarin项目中,我定义了新类CustomEditor: public class CustomEditor : Editor { } 在Xamarin里面,这个: [assembly: ExportRenderer(typeof(CustomEditor), typeof(CustomEditorRenderer))] namespace CustomRenderer.Android { class C
编辑器
实现自定义渲染,并按照说明操作,只是使用编辑器
而不是条目
:
在Xamarin项目中,我定义了新类CustomEditor
:
public class CustomEditor : Editor
{
}
在Xamarin里面,这个:
[assembly: ExportRenderer(typeof(CustomEditor), typeof(CustomEditorRenderer))]
namespace CustomRenderer.Android
{
class CustomEditorRenderer : EditorRenderer
{
public CustomEditorRenderer(Context context) : base(context) {}
protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.SetBackgroundColor(global::Android.Graphics.Color.LightGreen);
}
}
}
}
[程序集:ExportRenderer(typeof(CustomEditor)、typeof(CustomEditorRenderer))]
名称空间CustomRenderer.Android
{
类CustomEditorRenderer:EditorRenderer
{
公共CustomEditorRenderer(上下文):基(上下文){}
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(控件!=null)
{
Control.SetBackgroundColor(全局::Android.Graphics.Color.LightGreen);
}
}
}
}
应用程序正常生成和编译,但在尝试访问CustomEditor时出现错误:
var st = new StackLayout();
st.Children.Add(new CustomEditor()); // <= here
var st=new StackLayout();
添加(新的CustomEditor());//什么是InnerException?@Jason,我无法理解错误的细节。只有未处理的异常:System.Reflection.TargetInvocationException:异常已由调用的目标引发
异常对象具有InnerException属性,该属性通常会向您显示有关实际导致问题的原因的更有用信息。您需要使用调试器来查看InnerException@Jason,我不知道怎么弄到它。我无法将base(context)
包装到try/catch
中。我禁用了“仅启用我的代码”上的复选框,并在.net framework源代码中启用了调试(我希望它能帮助我进入base(context)
进行调试,但没有成功),您的项目中还有其他代码吗?我只是使用你的代码,它在我这边起作用。我上传了一个,你可以查看。