Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.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
C# ISystemClock在netstandard2.0中不可用_C#_.net Standard - Fatal编程技术网

C# ISystemClock在netstandard2.0中不可用

C# ISystemClock在netstandard2.0中不可用,c#,.net-standard,C#,.net Standard,经过多年的ASP.Net框架开发,我仍然在掌握.Net标准与.Net核心的关系。我已经建立了一个新的Web Api应用程序,该应用程序的目标是netcoreapp3.1框架,以及一个中间层/业务逻辑类库和数据访问类库,这两个类库都以.Net标准为目标,以实现未来最大的兼容性。但是,我似乎无法在.Net标准类库中使用Microsoft.AspNetCore.Authentication命名空间中的ISystemClock 通过阅读本文,我相信这可能是因为netstandard2.0可能没有实现Mi

经过多年的ASP.Net框架开发,我仍然在掌握.Net标准与.Net核心的关系。我已经建立了一个新的Web Api应用程序,该应用程序的目标是netcoreapp3.1框架,以及一个中间层/业务逻辑类库和数据访问类库,这两个类库都以.Net标准为目标,以实现未来最大的兼容性。但是,我似乎无法在.Net标准类库中使用Microsoft.AspNetCore.Authentication命名空间中的ISystemClock

通过阅读本文,我相信这可能是因为netstandard2.0可能没有实现Microsoft.AspNetCore.App框架。这是正确的吗

如果没有,我应该:

在我的类库中提供我自己的IMySystemClock接口 应用程序本身可以为?实现一个简单的具体类?;或

将我的类中间层和数据访问层更改为netcoreapp3.1 框架似乎过于致命,限制性太强了

还有别的吗?也许我没有理解.Net标准的要点`

像ISystemClock这样提供当前实时或模拟时间的服务似乎是一项非常基本的服务,所以我不确定为什么它没有出现在.net标准框架中

谢谢
如果您想从库中访问该功能,请将库的目标框架更改为.NET Core 3.1。可以在.NET标准或.NET核心中构建库。不能在.NET标准库中使用.NET核心功能,但可以反过来使用。在.NET核心库中使用.NET标准功能

另外,作为补充说明,除非出于兼容性原因需要,否则我建议您切换到.NET标准2.1。Visual Studio将新项目默认为.NET标准2.0,但在.NET标准2.1中添加了大量新功能

我在.NET框架中呆了多年,所以我感到困惑。我花了一段时间才习惯。我最近有一个很大的项目,从.NET Framework迁移到.NET Standard/.NET Core。我最后做的是把代码分成三个部分。一个包含所有非.NET Core特定通用代码的.NET标准2.1库,一个包含所有引用.NET标准库的.NET Core特定通用代码的.NET Core 3.1库,以及引用.NET Core 3.1库的作为.NET Core 3.1项目的应用程序


请确保您也阅读了这个问题的答案:

因此,将类库更改为.NET标准的目的是使我可以在新的.NET Core 3.1 WebApi和旧的ASP.NET Framework 4.8 web应用程序中使用它。感谢您提供的信息。请务必阅读以下内容: