在 Startup.cs 中使用等待将字符串添加到列表
Adding string to a List using await in Startup.cs
我正在尝试在 startup.cs
文件中异步获取 Active Directory 用户 ID。在末尾列出 return 空值。
- ASP.NET 核心 3.1 网络应用程序
- Visual Studio 2019
这是我的代码
string mylanid = "";
app.Run(async (context) =>
{
if ((RuntimeInformation.IsOSPlatform(OSPlatform.Linux)))
{
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "sh";
psi.Arguments = "-c whoami";
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
Process proc = new Process
{
StartInfo = psi
};
proc.Start();
string output = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
mylanid = output;
}
else
{
mylanid = Environment.UserName;
}
List<returnedId> listData = new List<returnedId>();
returnedId retrnTbl = new returnedId();
retrnTbl.userRole = mylanid;
listData.Add(retrnTbl);
});
如果我使用下面的代码而不是列表。它反映了正确的结果,但我希望将该字符串值存储在 List
.
中
await context.Response.WriteAsync(mylanId);
感谢任何帮助。
我通过以下步骤解决了它;
首先我在 Startup.cs
的顶部添加了这行代码
public List<string> listData = new List<string>();
其次,在in ConfigurationServices
我添加了这段代码;
services.AddSingleton<List<string>>(listData.ToList());
第三步,我将 string
数据添加到 List<string>
;
listData.Add(mylanid);
它奏效了。谢谢
我正在尝试在 startup.cs
文件中异步获取 Active Directory 用户 ID。在末尾列出 return 空值。
- ASP.NET 核心 3.1 网络应用程序
- Visual Studio 2019
这是我的代码
string mylanid = "";
app.Run(async (context) =>
{
if ((RuntimeInformation.IsOSPlatform(OSPlatform.Linux)))
{
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "sh";
psi.Arguments = "-c whoami";
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
Process proc = new Process
{
StartInfo = psi
};
proc.Start();
string output = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
mylanid = output;
}
else
{
mylanid = Environment.UserName;
}
List<returnedId> listData = new List<returnedId>();
returnedId retrnTbl = new returnedId();
retrnTbl.userRole = mylanid;
listData.Add(retrnTbl);
});
如果我使用下面的代码而不是列表。它反映了正确的结果,但我希望将该字符串值存储在 List
.
await context.Response.WriteAsync(mylanId);
感谢任何帮助。
我通过以下步骤解决了它;
首先我在 Startup.cs
public List<string> listData = new List<string>();
其次,在in ConfigurationServices
我添加了这段代码;
services.AddSingleton<List<string>>(listData.ToList());
第三步,我将 string
数据添加到 List<string>
;
listData.Add(mylanid);
它奏效了。谢谢