gpt4 book ai didi

xamarin.forms - IServiceProvider 在 .NET Standard 中不可用?

转载 作者:行者123 更新时间:2023-12-04 21:33:08 24 4
gpt4 key购买 nike

我正在尝试将 PCL 转换为 .NET Standard 1.3 并且失败了。我已经将失败缩小到一个非常简单的例子,我无法理解它为什么失败。

我有一个实现 IMarkupExtension 的类并且仅使用该类编译项目失败:

The type 'IServiceProvider' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.ComponentModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.



它到底为什么要拉进来 System.ComponentModel对于使用 .NET Standard 的 Xamarin Forms 库?对我来说完全是无稽之谈。

项目引用非常简单:

enter image description here

类的实现再简单不过了:
namespace OpenNETCF
{
public sealed class ScaledDouble : IMarkupExtension
{
public object ProvideValue(IServiceProvider serviceProvider)
{
return null;
}
}
}

我可以通过手动编辑项目文件以包含 System.ComponentModel 来消除编译器错误。 ,但不出所料,消费应用程序无法在运行时加载类型。
<ItemGroup>
<PackageReference Include="Xamarin.Forms" Version="2.3.4.267" />

<!-- Required for IMarkupExtension and IServiceProvider to compile. No idea why. -->
<PackageReference Include="System.ComponentModel" Version="4.3.0" />
</ItemGroup>

这里发生了什么??

最佳答案

.NET Standard 项目没有默认程序集。您应该添加引用或从 nuget 下载。

PM> Install-Package System.ComponentModel

关于xamarin.forms - IServiceProvider 在 .NET Standard 中不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45922394/

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