小编KBN*_*nda的帖子

如何使用 C# 通过 Json 中的键名获取值列表

我有一个 Json 文件如下

{
  "objectId": "123",
  "properties": {
    "objectId": "456"
  },
  "variables": [
    {
      "objectId": "789"
    },
    {
      "objectId": "012"
    }
  ]

}
Run Code Online (Sandbox Code Playgroud)

我想在列表中获取所有“objectId”,例如 [ "123", "456", "789", "012" ]

我试过如下

var body = JObject.Parse(jsonString); //using Newtonsoft library
var list = body.Properties().Where(p => p.Name == "objectId").Select(p => p.Value).ToList();
Run Code Online (Sandbox Code Playgroud)

我也尝试过以下方式

var list = new List<string>();
            foreach(var prop in body.Properties())
            {
                if(prop.Name == "objectId")
                {
                    list.Add(prop.Value.ToString());
                }
            }
Run Code Online (Sandbox Code Playgroud)

但在这里我只得到一级属性。

c# json json.net

6
推荐指数
1
解决办法
1748
查看次数

在 Windows 10 中启动时 Docker 桌面崩溃

我通过“Docker 桌面安装程序”在 Windows 10 上安装了 docker 桌面。

安装后我注销并登录。一段时间后它在启动时崩溃,说明如下消息

Docker.Core.Backend.BackendDestroyException:
One or more errors occurred.
   at Docker.Core.Pipe.NamedPipeClient.<TrySendAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Docker.Core.Pipe.NamedPipeClient.Send(String action, Object[] parameters)
   at Docker.Actions.DoStart(SynchronizationContext syncCtx, Boolean showWelcomeWindow, Boolean withNotifications)
   at Docker.Actions.<>c__DisplayClass26_0.<StartAsync>b__0()
   at Docker.ApiServices.TaskQueuing.TaskQueue.<>c__DisplayClass18_0.<.ctor>b__1()

  System.AggregateException:
  One or more errors occurred.
     at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
     at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
     at Docker.Backend.LifecycleClient.DockerStart()
     at Docker.Backend.ContainerEngine.Linux.DoStart(Settings settings, String daemonOptions, Credential credential)
     at Docker.Backend.ContainerEngine.Linux.Start(Settings settings, String daemonOptions, Credential credential)

     Docker.Core.HttpBadResponseException:
     unable to …
Run Code Online (Sandbox Code Playgroud)

virtualization hypervisor docker windows-10

5
推荐指数
2
解决办法
1万
查看次数

如何在 .NET Core 上用 C# 并行执行不同的 REST API 请求?

问题陈述

我需要一次性发送多个 API 调用。

我有三个不同的 API 端点,如下所示,所有这些端点都需要尽快调用在一起。这一切都是相互独立的。

public async Task<string> GetA(string a)
{
}

public async Task<string> GetB(int a)
{
}

public async Task<string> GetC(int a, string a)
{
}
Run Code Online (Sandbox Code Playgroud)

我尝试过的

我正在尝试这样:

public async Task CallMultipleAPIs()
{
    await GetA("");
    await GetB(1);
    await GetC(1, "");
}
Run Code Online (Sandbox Code Playgroud)

这里如何实现并行呢?

c# multithreading asynchronous async-await .net-core

1
推荐指数
1
解决办法
3657
查看次数