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 轴的值
Numpy Column Stack with Strings?