gpt4 book ai didi

c# - 自定义渲染器的 MissingMethodException

转载 作者:行者123 更新时间:2023-11-30 13:54:00 25 4
gpt4 key购买 nike

当加载我的 MainPage 时,Visual Studio 进入中断模式并出现以下错误

System.MissingMethodException: Default constructor not found for type Test.Renderers.PostListViewAndroid

我更新了自定义渲染器类以支持 2.5,因为 Context 在 2.5 版中已过时

我的自定义渲染器是

[assembly: ExportRenderer(typeof(PostListView), typeof(PostListViewAndroid))]
namespace SocialNetwork.Droid.Renderers
{
public class PostListViewAndroid: ListViewRenderer
{

public PostListViewAndroid(Context context) : base(context)
{

}

protected override void OnElementChanged(ElementChangedEventArgs<ListView> e)
{
base.OnElementChanged(e);
Control.SetSelector(Android.Resource.Color.Transparent);
}
}
}

而 PostListView 很简单

public class PostListView : ListView
{
}

最佳答案

如果您使用 Xamarin.Forms >= 2.5,您需要使用 ListViewRenderer(Context context) : base(context) 如您所知

这是当前ListViewRenderer的来源

public class ListViewRenderer : ViewRenderer<ListView, AListView>, SwipeRefreshLayout.IOnRefreshListener
{
...

public ListViewRenderer(Context context) : base(context)
{
AutoPackage = false;
}

[Obsolete("This constructor is obsolete as of version 2.5. Please use ListViewRenderer(Context) instead.")]
public ListViewRenderer()
{
AutoPackage = false;
}

注意 Obsolete 属性,这意味着您不需要它。但是,您的问题似乎是您的包和引用不一致。我尝试以下步骤

第一步

  1. 清洁解决方案
  2. 删除所有项目中的 bin 和 objs 方向
  3. 重启 Visual Studio
  4. 重建

第 2 步

尝试在包包控制台中更新解决方案的所有包

Update-Package  –reinstall

完成此步骤后,如果仍然没有成功,请重试步骤 1

关于c# - 自定义渲染器的 MissingMethodException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48802628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com