Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.forms IServiceProvider在.NET标准中不可用?_Xamarin.forms_.net Standard - Fatal编程技术网

Xamarin.forms IServiceProvider在.NET标准中不可用?

Xamarin.forms IServiceProvider在.NET标准中不可用?,xamarin.forms,.net-standard,Xamarin.forms,.net Standard,我正在尝试将PCL转换为.NET标准1.3,但失败了。我已经把失败缩小到一个非常简单的例子,我不明白为什么失败 我有一个类,它实现了IMarkupExtension,只需使用该类编译项目就会失败: 类型“IServiceProvider”是在未引用的程序集中定义的。您必须添加对程序集“System.ComponentModel,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”的引用 它究竟为什么要为使用.NET标准的

我正在尝试将PCL转换为.NET标准1.3,但失败了。我已经把失败缩小到一个非常简单的例子,我不明白为什么失败

我有一个类,它实现了
IMarkupExtension
,只需使用该类编译项目就会失败:

类型“IServiceProvider”是在未引用的程序集中定义的。您必须添加对程序集“System.ComponentModel,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”的引用

它究竟为什么要为使用.NET标准的Xamarin表单库引入
System.ComponentModel
?这对我来说毫无意义

项目参考尽可能简单:

类实现再简单不过了:

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标准项目没有默认程序集。您应该添加参考或从nuget下载

PM>安装软件包System.ComponentModel


嗯,这些是Silverlight接口。检查一下。Silverlight是一种过时的技术,开发于2013年停止。您是否尝试过安装?