小编Ser*_*kyi的帖子

asp .net core 6 如何更新 json 序列化选项。Json序列化中的日期格式

我对这个愚蠢的问题表示歉意,但我没有看到一个很好的例子来说明如何在 .net core 6 的 JSON 序列化中为 DateTime 指定特定格式。

老办法,net core 3。

// in the ConfigureServices()
services.AddControllers()
    .AddJsonOptions(options =>
     {
         options.JsonSerializerOptions.Converters.Add(new DateTimeConverter());
     });
Run Code Online (Sandbox Code Playgroud)

官方网站上有一个示例https://learn.microsoft.com/en-us/dotnet/standard/datetime/system-text-json-support

JsonSerializerOptions options = new JsonSerializerOptions();
options.Converters.Add(new DateTimeConverterForCustomStandardFormatR());
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能将它连接到 DI 以便在控制器中使用呢?

c# json asp.net-core asp.net-core-3.0 asp.net-core-6.0

15
推荐指数
1
解决办法
2万
查看次数

Helm 测试最佳实践

只是为了澄清。

  1. 我不是在谈论 Helm 图表最佳实践。我可以在这里自己阅读:https : //helm.sh/docs/chart_best_practices/
  2. 我不是在谈论 Terratest。

我对 Helm Test 感兴趣,你可以在这里阅读更多关于它的信息https://helm.sh/docs/chart_tests/#chart-tests

不幸的是,文档没有为您提供很多信息,这部分是这个问题的原因。

我们有什么:

  1. 我们可以通过以下路径在图表中定义测试

our-app/templates/tests/test-our-app.yaml

  1. 据我所知,根据文档,它不是图表的单元测试,而更像是冒烟测试或集成测试。文档:“验证您的图表在安装时是否按预期工作”。这正是我所需要的。
  2. 为了运行测试https://helm.sh/docs/chart_tests/#steps-to-run-a-test-suite-on-a-release。我们需要安装 our-app Chart
    $ helm install our-app
Run Code Online (Sandbox Code Playgroud)

然后我们可以测试该图像

    $ helm test release-with-our-app
Run Code Online (Sandbox Code Playgroud)

我想澄清的事情:

  1. 我们应该有两个单独的 docker 镜像还是一个用于应用程序和测试?...

    一种)。如果它是应用程序代码和测试代码的单个图像,那么我们将在该图像上添加用于测试/测试的代码,这使得它更大,另外我们需要将测试所需的依赖项放在该图像上. 对我来说,这个解决方案似乎是错误的。

    b)。我们有一个单独的测试图像的情况更有意义,因为我们的应用程序 docker 图像没有任何不必要的依赖项。更重要的是,在第二个解决方案中,我们并不真正关心带有测试的 docker 镜像的大小,因为它应该是一个短期镜像,在对它的测试完成后会关闭。

    我的假设是否正确,我们应该为这些测试提供单独的图像吗?

  2. 如果有两个单独的图像,一个用于代码,另一个用于测试。我们如何与他们结婚?这是否意味着我们必须将 Build/Release 编号传递给 helm test 命令,以便它能够下拉正确的图像进行测试?

  3. 另外,如果我们有两个单独的图像。我应该在 docker 文件中指定测试运行进行测试吗?例如 :

   CMD ["sh", "-c", "gradle test -Denvironment=$ENVIRONMENT"]
Run Code Online (Sandbox Code Playgroud)

或者它应该在图表内

   our-app/templates/tests/test-our-app.yaml
Run Code Online (Sandbox Code Playgroud)

例如来自 mysql repo 的 test.yaml:

https://github.com/helm/charts/blob/master/stable/mysql/templates/tests/test-configmap.yaml

  1. 看起来文档中根本没有提到环境。我的问题是将环境名称传递给图表以便测试知道要命中哪些端点等的最佳/推荐方法是什么?应该是 Chart args如何将动态参数传递给运行作业的舵图

docker kubernetes kubernetes-helm

8
推荐指数
1
解决办法
7467
查看次数

.net core 3 , MVC , 使用端点路由时不支持使用“UseMvcWithDefaultRoute”来配置 MVC

我正在尝试创建一个基于 ASP.NET Core 3 的简单项目。

ASP.NET Core 2.2 的 MVC 模板在启动类中有以下行:

app.UseMvcWithDefaultRoute();
Run Code Online (Sandbox Code Playgroud)

此行在 ASP.NET Core 2.2 中完美运行并且路由工作,但是,在 ASP.NET Core 3.0 中它不会编译并显示以下错误

使用端点路由时,不支持使用“UseMvcWithDefaultRoutee”来配置 MVC。

问题是:“如何在 .net core version 3 中为 MVC 应用程序配置路由?”

.net c# asp.net-mvc asp.net-core

6
推荐指数
1
解决办法
1万
查看次数

如何在asp.net core 6中添加全局路由前缀

不幸的是,对以前版本的建议不起作用 如何在 asp.net core 3 中添加全局路由前缀?

app.UsePathBase(new PathString("/api"));
Run Code Online (Sandbox Code Playgroud)

也不是这个

public static class MvcOptionsExtensions
{
    public static void UseGeneralRoutePrefix(this MvcOptions opts, IRouteTemplateProvider routeAttribute)
    {
        opts.Conventions.Add(new RoutePrefixConvention(routeAttribute));
    }

    public static void UseGeneralRoutePrefix(this MvcOptions opts, string 
    prefix)
    {
        opts.UseGeneralRoutePrefix(new RouteAttribute(prefix));
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-core-6.0

6
推荐指数
1
解决办法
1万
查看次数

Helm 删除所有早于某个日期、在某个日期之前更新的版本或者应用程序版本低于

如何删除 10 月 1 日之前的版本?我的意思是10月1日之前更新。
或者,删除应用程序版本低于 _ 的所有版本。

舵机 ls 输出:

|名称|修订|更新|状态|图表|应用程序版本|命名空间|
|我的应用程序| 8 |2019 年 9 月 27 日星期五 17:27:20|部署|myapp.85|85 |默认|

以下命令仅删除一个。

舵删除relase_name

以下也不是一个很好的解决方案

helm 删除 relase_name1 relase_name2 relase_name3

注1:我不想删除全部。这里有关于如何执行此操作的解释,Helm 删除所有版本,但我不想这样做。但是,我认为我需要使用 bash 来完成此任务。

注2:我已经阅读过文档,它并没有那么大。那里没有任何关于过滤的内容。 https://helm.sh/docs/helm/#helm-delete

注3:我已经研究过 helm 来源,我不是 100% 确定,但看起来不可能https://github.com/helm/helm/tree/master/pkg/helm

先感谢您!

kubernetes kubernetes-helm

5
推荐指数
2
解决办法
1万
查看次数