来自 C# 背景的空条件运算符允许您调用函数以避免可能的空引用异常,如下所示:
Func<int> someFunc = null;
int? someInteger = someFunc?.Invoke();
// someInteger == null
Run Code Online (Sandbox Code Playgroud)
鉴于 Typescript 具有具有非常相似功能的“可选链接运算符”,.?我想知道是否有一种方法可以使用类似简洁的代码来完成相同的操作。我能想到的最好的方法是使用条件表达式:
let someFunc: (() => number) | undefined = undefined;
let someNumber = someFunc !== undefined ? someFunc() : undefined;
Run Code Online (Sandbox Code Playgroud)
我很惊讶我无法找到这个问题的答案,但是如何让 NLog 以漂亮的格式编写 JSON 格式的消息,而不是默认的单行版本?
是否有一个简单的设置,或者我需要编写一个自定义渲染器?
基本上代替
{ "date": "2018-11-18 14:21:45.0671", "level": "INFO", "message": "Some message" }
我想要
{
"date": "2018-11-18 14:21:45.0671",
"level": "INFO",
"message": "Some message"
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将大文件上传到我的 ASP.NET Core MVC 2.1 应用程序中的 API 控制器操作。为此,我一直试图弄清楚如何通过 IIS Express 允许这样做,这就是我通过 Visual Studio 运行应用程序的方式。正如所建议的,这应该可以通过向web.config项目根目录添加一个包含以下内容的文件来实现:
<?xml version="1.0" encoding="utf-8"?>
<!-- Configuration for IIS integration -->
<configuration>
<system.webServer>
<security>
<requestFiltering>
<!-- 2 GB -->
<requestLimits maxAllowedContentLength="2147483647" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但是,这没有任何影响,因为应用程序只返回HTTP Error 404.13 - Not Found,表明请求太大。似乎这些设置被 IIS 锁定,因此web.config不会覆盖它们。是的,我也在控制器操作上使用[DisableFormValueModelBinding]和使用属性[DisableRequestSizeLimit]。
相反,我发现,它的工作原理是将相同的配置,该网站在applicationhost.config中\.vs\config的文件夹:
<location path="MySite">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600" requestTimeout="23:00:00" /> …Run Code Online (Sandbox Code Playgroud)