有时我需要启动一个工作非常缓慢的异步工作。我不在乎那份工作是否成功,我需要继续处理我当前的线程。
就像有时我需要发送一封电子邮件或短信,但工作速度很慢。我需要尽快回复网络客户端,所以我不想这样做await。
我用谷歌搜索了这个问题,有些文章建议我这样写:
// This method has to be async
public async Task<Response> SomeHTTPAction()
{
// Some logic...
// ...
// Send an Email but don't care if it successfully sent.
Task.Run(() => _emailService.SendEmailAsync());
return MyRespond();
}
Run Code Online (Sandbox Code Playgroud)
或者像这样:
// This method has to be async
public async Task<Response> SomeHTTPAction()
{
// Some logic...
// ...
// Send an Email but don't care if it successfully sent.
Task.Factory.StartNew(() => _emailService.SendEmailAsync());
return MyRespond();
}
Run Code Online (Sandbox Code Playgroud)
会有警告说: before the call is completed. …
我正在将一个项目从 .NET 5 迁移Newtonsoft.Json到System.Text.Json.NET 5。
我有课:
abstract class Car
{
public string Name { get; set; } = "Default Car Name";
}
class Tesla : Car
{
public string TeslaEngineName { get; set; } = "My Tesla Engine";
}
Run Code Online (Sandbox Code Playgroud)
我试过:
var cars = new List<Car>
{
new Tesla(),
new Tesla(),
new Tesla()
};
var json = JsonSerializer.Serialize(cars);
Console.WriteLine(json);
Run Code Online (Sandbox Code Playgroud)
输出是:
[
{"Name":"Default Car Name"},
{"Name":"Default Car Name"},
{"Name":"Default Car Name"}
]
Run Code Online (Sandbox Code Playgroud)
其中失去了我的财产:TeslaEngineName。
那么如何序列化具有所有属性的派生对象呢?
我正在尝试将旧应用程序迁移到 Azure。让我们调用该应用程序OAP。OAP 目前本地部署在装有 Windows Server 2016 的典型服务器上。
用户在使用OAP时,可以通过浏览器将文件上传到系统中。
在OAP服务器端,由C#编写,将文件保存到本地磁盘。保存位置是 OAP 的可配置设置。F:\OAPStorage现在它值了。
现在我需要将需要磁盘存储的应用程序部署到Azure应用程序服务。我了解Azure应用程序服务提供了一些用于运行应用程序的空间。但如果应用程序可扩展怎么办?
我知道最好的做法是使用Azure Blob Storage. 但重构旧应用程序OAP是不可能的。我必须为其提供文件存储来保存用户上传的文件。可以将其仅保存在应用程序运行的磁盘上吗?
当我在 ASP.NET Core 项目上编码时,我的操作中需要一些服务,例如_tokenManager,我必须添加一个新的依赖项注入,如下所示:
为控制器添加新的依赖项至少需要 3 行代码,因此这并不容易。当我需要多个依赖项时,这会花费我很多时间。
顺便说一句,当我更改代码时,某些依赖项可能不是必需的,应将其删除。我必须一一检查这些依赖关系,以确保每一个都是必要的。那么,当我尝试使用这些依赖项时,是否有任何简单的方法可以自动添加这些依赖项,并建议我删除那些不需要的依赖项?
看来Visual Studio已经有这个功能了。如何启用此功能?
当创建与个人身份验证的新的.NET 2.1的核心网络项目,该项目将被创建AccountController,并ManageController在它旁边。
命令是:
dotnet new mvc --auth 个人
然而,我在哪里可以找到默认AccountController并ManageController在.NET 2.2核心的新项目?我需要修改我的默认登录逻辑。
我想创建一个路由,在 url 中路由无限的字符串集合。
像这样:
https://github.com/{orgName}/{projectName}/blob/{branchName}/{folderName1}/{folderName2}/.../{folderNameN}/{fileName}
Run Code Online (Sandbox Code Playgroud)
例如
https://github.com/AiursoftWeb/Nexus/blob/master/Account/Controllers/AccountController.cs
Run Code Online (Sandbox Code Playgroud)
将路由到此操作。路由结果应为:
orgName: AiursoftWeb
projectName: Nexus
branchName: master
folderNames: string[2] of:
"Account"
"Controllers"
fileName: AccountController.cs
Run Code Online (Sandbox Code Playgroud)
我如何做到这一点?
我尝试了以下方法:
https://github.com/{orgName}/{projectName}/blob/{branchName}/{folderName1}/{folderName2}/.../{folderNameN}/{fileName}
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
c# ×5
.net ×2
asp.net-core ×2
.net-core ×1
asp.net ×1
asp.net-mvc ×1
asynchronous ×1
azure ×1
json ×1
routes ×1