根据@nilekirk 的回答,您可以创建自己的扩展方法,使用不同的名称,以保持流畅的语法:
#r "nuget: OwaspHeaders.Core, 4.2.0"
open OwaspHeaders.Core.Extensions
open OwaspHeaders.Core.Models
type SecureHeadersMiddlewareConfiguration with
member config.MyUseHsts(maxAge, includeSubDomains) =
SecureHeadersMiddlewareBuilder.UseHsts(config, maxAge, includeSubDomains)
let config =
SecureHeadersMiddlewareBuilder
.CreateBuilder()
.MyUseHsts(1200, false)
.Build()
如果你想保持相同的默认参数,我认为你可能不得不这样做:
type SecureHeadersMiddlewareConfiguration with
member config.MyUseHsts(?maxAge, ?includeSubDomains) =
match maxAge, includeSubDomains with
| Some maxAge', Some includeSubDomains' ->
SecureHeadersMiddlewareBuilder.UseHsts(config, maxAge', includeSubDomains')
| Some maxAge', None ->
SecureHeadersMiddlewareBuilder.UseHsts(config, maxAge')
| None, Some includeSubDomains' ->
SecureHeadersMiddlewareBuilder.UseHsts(config, includeSubDomains = includeSubDomains')
| None, None ->
SecureHeadersMiddlewareBuilder.UseHsts(config)
它有点难看,但它会让你的代码的其余部分更好。