netstandard 1.5 中缺少 StackTrace 的默认构造函数

Posted

技术标签:

【中文标题】netstandard 1.5 中缺少 StackTrace 的默认构造函数【英文标题】:Missing default constructor for StackTrace in netstandard 1.5 【发布时间】:2020-09-29 18:53:07 【问题描述】:

我在 netstandard 1.5 项目中使用 StackTrace 时遇到困难。它似乎缺少在 netcore 3.1 项目中正常工作的默认构造函数。

错误是:

error CS7036: There is no argument given that corresponds to the required formal
parameter 'exception' of 'StackTrace.StackTrace(Exception, bool)'

没有专门的 API 页面指示 API 实际是什么,而是显示了具有默认构造函数的 netcore 3.1。

https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.stacktrace?view=netcore-3.1&viewFallbackFrom=netstandard-1.5

如果我在 Rider 中查看源代码,则会看到与 3.1 相同的 API。

.cspproj

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netstandard1.5</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="System.Diagnostics.StackTrace" Version="4.3.0" />
  </ItemGroup>
</Project>

Program.cs

using System;

namespace stacktracer

    class Program
    
        static void Main(string[] args)
        
            Console.WriteLine(
                new System.Diagnostics.StackTrace().GetFrame(0).GetMethod().Name
            );
        
    

我可以在 netstandard 中创建 StackTrace 而不出现异常吗?

【问题讨论】:

【参考方案1】:

System.Diagnostics.StackTrace 不是 .NET Standard 1.5 的一部分。

您可以找到完整的 API here on GitHub。

或者,您可以使用.NET API browser。

.NET Standard 2.1,但是,确实包含此 API。

【讨论】:

它来自nuget.org/packages/System.Diagnostics.StackTrace,它具有netstandard 1.3 接口。该类型可以使用,它只是有奇怪的构造函数。

以上是关于netstandard 1.5 中缺少 StackTrace 的默认构造函数的主要内容,如果未能解决你的问题,请参考以下文章

使用 twoord.plot 在 R 中使用两个 y 轴绘制线图:缺少第一个 y 轴的值

在 NetStandard 2 中反转跨度

Numpy Column Stack with Strings?

找不到包 NETStandard.Library

在 NetStandard 2.0 类库中托管 WCF 服务

将 .NetStandard 2.0 Nuget 包安装到 VS2015 Net 4.6.1 项目中