gpt4 book ai didi

android - Autofac、Android 和 Xamarin Forms == 未找到可访问的构造函数

转载 作者:搜寻专家 更新时间:2023-11-01 09:26:30 25 4
gpt4 key购买 nike

我有一个 Xamarin Forms 项目,它使用 .NET Standard 2.0,利用 Autofac 进行 DI。

该项目适用于 Android、iOS 和 UWP。

当我使用 iOS 或 UWP 运行项目时,一切都按预期工作。

在 Android 中运行它时,在尝试解析 MainViewModel 时出现“未找到可访问的构造函数 ...”异常.

注册:builder.RegisterType<MainViewModel>().AsSelf();

解析 MainViewModel:

public MainViewModel MainPage
{
get
{
using (var scope = _container.BeginLifetimeScope())
{
return _container.Resolve<MainViewModel>();
}
}
}

MainViewModel 构造函数:

public MainViewModel(
ISecureDatabaseService secureDb,
IReceiptQueuedSenderHandler receiptQueuedSenderHandler)

两者都是 ISecureDatabaseServiceIReceiptQueuedSenderHandler在注册之前已在 Autofac 注册 MainViewModel .

知道这里发生了什么吗?为什么在 iOS 和 UWP 上运行顺利,在 Android 上却出现问题?

它可能与 Xamarin Forms 中的链接有关吗?

我使用的是 Autofac 4.8。我也尝试过使用 Autofac 4.6.2,但结果相同。

最佳答案

听起来几乎肯定与 Android 表单中的链接有关。我为此做了一场噩梦,直到​​我崩溃并为每个 Android 应用程序创建一个 linker.xml 文件,如下所述:https://learn.microsoft.com/en-us/xamarin/cross-platform/deploy-test/linker

关于android - Autofac、Android 和 Xamarin Forms == 未找到可访问的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50190698/

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