我有一个 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)
但在这里我只得到一级属性。
我通过“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) 问题陈述
我需要一次性发送多个 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# ×2
.net-core ×1
async-await ×1
asynchronous ×1
docker ×1
hypervisor ×1
json ×1
json.net ×1
windows-10 ×1