我正在使用ASP.NET Core 2.1.我有设置,appsettings.json并使用选项模式将它们绑定到类.我想覆盖它们中的一些appsettings.Production.json.
根据文档支持覆盖,并且通常对我有用.但它不适用于数组.
appsettings.json:
"MySectionOuter": {
"MySectionInner": [
{
"foo": "1",
"bar": "2",
"baz": "3"
},
{
"foo": "a",
"bar": "b",
"baz": "c"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的重写 appsettings.Production.json
"MySectionOuter": {
"MySectionInner": [
{
"bar": "4",
},
{
"baz": "d"
}
]
}
Run Code Online (Sandbox Code Playgroud)
然而,这不起作用 - 它增加而不是替换.
我读到该数组是键值存储的语法糖.所以我也试过这个:
"MySectionOuter": {
"MySection:1": {
"bar": "4",
},
"MySection:2": {
"baz": "b",
}
}
Run Code Online (Sandbox Code Playgroud)
但这也行不通.
什么是正确的语法?
UPDATE
评论显示我没有正确解释.我想要的是这样的:
在开发期间:
element1: foo=1
element1: bar=2
element1: baz=3
element2: foo=a …Run Code Online (Sandbox Code Playgroud) 我开始使用 Prettier,但发现它没有选项来控制代码块之间的空行数,并且默认为 1。
我想要 2 个空行:
const bar = 10;
// blank 1
// blank 2
function foo() {
hello();
world();
}
// blank 1
// blank 2
foo();
// blank 1
// blank 2
export foo;
Run Code Online (Sandbox Code Playgroud)
但它默认为 1 个空行:
const bar = 10;
// blank 1
function foo() {
hello();
world();
}
// blank 1
foo();
// blank 1
export foo;
Run Code Online (Sandbox Code Playgroud)
我怎样才能通过 Prettier 实现这一目标?
(或者也许还有另一种方法可以做到这一点。令我惊讶的是 Prettier 中可用的可配置选项如此之少。我希望有更多的控制权。)
我正在使用非常流行的jsonwebtoken节点包。签名和验证通常同步执行,但也提供异步选项。
我认为所涉及的操作既不是数据绑定的,也不是计算昂贵的,因此不存在给主/用户线程带来负担的风险。我没有看到任何好处。
那么为什么要异步执行此类操作——有什么好处呢?
在我的docker-compose.yml我需要使用很长的command,我想记录它。这不容易完成,但我有一个几乎有效的解决方法。
foo: # valid comment
image: foo:latest # valid comment
command: >
printf '
something # explanation for this command
--arg # explanation for this switch
--a # explanation
--b hello
-c # this does...
--d spam # don't use this when...
#some notes
--e ham # hmmm
--eggs # explanation
' |grep -v ^[[:space:]]*$ |grep -v ^# |cut -d# -f1 # valid comment
restart: always # valid comment
Run Code Online (Sandbox Code Playgroud)
所以每个命令和开关都可以被注释。
猛击:
printf ' ... ' 将所有内容打印为文本,作为命令运行 …EF Core 5 有各种事件,但它们都与DbContext. 没有与迁移相关的事件 ( Migration)。
我想在应用所有迁移后运行自定义代码 - 无论是由代码 ( context.Database.Migrate()) 还是 CLI ( dotnet ef database update) 触发。
解决方法是添加一个“空”迁移,并将我的代码放入其Up方法中。但每次添加迁移时我都需要这样做。
假设没有我可以使用的事件或挂钩(有吗?),在应用所有迁移后如何运行自定义代码?
.net c# entity-framework entity-framework-core entity-framework-migrations
我正在使用 ASP.NET Core 6。我正在尝试将 blazor 项目添加到包含 Web API 服务器项目的现有 monorepo。我运行了dotnet new blazorwasm --hosted,生成的服务器项目包含这个包:
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="6.0.4" />
Run Code Online (Sandbox Code Playgroud)
它的目的是什么——我需要它吗?文档说:
提供用于在本地托管 Blazor 开发服务器的类型。仅适用于框架,不支持在应用程序代码中使用。
这很令人困惑 - 为什么它包含在模板中?它并没有隐藏在Development环境构建步骤后面。
Microsoft.AspNetCore.Components.WebAssembly.DevServer 另外,它与包装有什么不同?
(生成的客户端 blazor 项目还引用Microsoft.AspNetCore.Components.WebAssembly和Microsoft.AspNetCore.Components.WebAssembly.DevServer。我很好奇所有这些是如何相关的。)
Core2有一个钩子,用于验证从appsettings.json以下位置读取的选项:
services.PostConfigure<MyConfig>(options => {
// do some validation
// maybe throw exception if appsettings.json has invalid data
});
Run Code Online (Sandbox Code Playgroud)
此验证代码在首次使用时触发MyConfig,并在每次之后触发.所以我得到了多个运行时错误.
但是,在启动期间运行验证更为明智 - 如果配置验证失败,我希望应用程序立即失败.该文档暗示是如何工作的,但没有发生什么变化.
我做得对吗?如果是这样,这是设计,那么我怎样才能改变我正在做的事情,以便按照我想要的方式工作?
(另外,PostConfigure和之间的区别PostConfigureAll是什么?在这种情况下没有区别,所以什么时候应该使用哪一个?)
这不会编译:
public hello(user?: User): void {
// ...do some stuff
console.log(user.toString()); // error: "Object is possibly undefined"
}
Run Code Online (Sandbox Code Playgroud)
这可以通过类型保护来修复:
if (!user) throw Error();
Run Code Online (Sandbox Code Playgroud)
但我想把它移到一个单独的函数中,所以我试过了
private guard(arg: unknown): arg is object {
if (!arg) throw Error();
}
Run Code Online (Sandbox Code Playgroud)
我试过
private guard(arg: unknown): arg is object {
return arg !== undefined;
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用。
如何在单独的函数中编写自定义类型保护,以断言“未定义”?
我的monorepo:
/app1
package.json
/app2
package.json
/shared
package.json
Run Code Online (Sandbox Code Playgroud)
该shared/package.json有"name": "@company/shared"。
应用程序项目的package.json文件具有依赖关系"@company/shared": "file:../shared"。
在引用共享代码时,我想要一个“短”样式,当东西移动时也不太容易中断:
import { foo } from "@company/shared"
Run Code Online (Sandbox Code Playgroud)
但这不起作用,所以我必须这样做::
import { foo } from "../../../../../shared/src/something"
Run Code Online (Sandbox Code Playgroud)
我摆弄了两者package.json,tsconfig.json但没有成功。
我该如何设置?
我招摇用户界面会显示“参数的内容类型”与各条目:"application/json-patch+json","text/json","application/json",和"application/*+json"。
我只想要"application/json"。
回购上有一个类似的未解决问题,它使用以下视觉效果(旧版ui,但思路相同):
有什么办法可以设置这个吗?
Swashbuckle.AspNetCore版本4.0.1
Swashbuckle.AspNetCore.Filters版本4.5.5
c# ×4
asp.net-core ×3
node.js ×3
typescript ×3
.net ×1
.net-core ×1
asynchronous ×1
bash ×1
blazor ×1
cryptography ×1
docker ×1
entity-framework-migrations ×1
hash ×1
javascript ×1
jwt ×1
linux ×1
npm ×1
package.json ×1
prettier ×1
swagger ×1
swagger-ui ×1
swashbuckle ×1
tsconfig ×1
yaml ×1