在 Prism 中使用 IHttpClientFactory

Using IHttpClientFactory in Prism

我想在使用 Prism 库构建的 WPF 应用程序中使用 IHttpClientFactory。我添加了两个包,Prism.Unity 和 Prism.Unity.Extensions,我尝试使用以下代码注册 IHttpClientFactory

containerRegistry.RegisterServices(s => s.AddHttpClient("DefaultClient")
                                         .AddPolicyHandler(GetRetryPolicy()));

但是,我收到以下错误:

我还添加了以下覆盖:

protected override IContainerExtension CreateContainerExtension() => PrismContainerExtension.Current;

Prism 8 引入了 范围服务 的注册方法。 IContainerProvider 接口声明了一个额外的方法 CreateScope and a member CurrentScope,早期版本中没有。

public interface IContainerProvider {
   // ...other members.

   IScopedProvider CreateScope();

   ScopedProvider CurrentScope { get; }
}

Prism.Unity.Extensions7.2.0.1054 及更早版本中的 PrismContainerExtension实现这个方法。因此,在 Prism 8 中使用它会出现异常。

由于类型不兼容,您要么必须恢复到 Prism 7.2.0.1054,要么必须等待 [=35= 的新版本] 支持 Prism 8 中的新作用域服务。存储库中已经进行了更改,但预览版目前为 only available to sponsors