小编mat*_*mat的帖子

如何在spring-boot中禁用控制台日志记录?

我正在使用默认的日志记录配置logging.file=myfile.log.

如何在保持日志文件配置的日志文件的同时阻止控制台输出logback.xml

我的目标是没有控制台窗口输出,但只记录到该文件.

无需创建特定的spring-bootspring-boot`,无需自己配置日志记录.

java logging spring spring-boot

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

在git包中提交

海兰!

有没有办法获得存储在git包中的所有提交的列表而不首先克隆它?

获得头脑很容易,但我找不到一种方法来获得完整的注销.

git git-bundle

9
推荐指数
1
解决办法
2069
查看次数

使用通用基类作为方法的参数

我有以下课程

public class A<T>
{
}
public class B<T> : A<T>
{
}
public class C1 : B<string>
{
}
public class C2 : B<int>
{
}
Run Code Online (Sandbox Code Playgroud)

我想要的是,有一个方法可以采取任何类派生B<T>,喜欢C1C2作为参数.但是声明一种方法

public void MyMethod(B<T> x)
Run Code Online (Sandbox Code Playgroud)

不起作用,它会产生编译器错误

错误CS0246:找不到类型或命名空间名称"T".您是否缺少using指令或程序集引用?(CS0246)

我很困在这里.创建一个非泛型的基类B<T>将不起作用,因为我无法从A<T>那种方式派生.我能想到的唯一(丑陋)解决方案是定义一个由"实现"的空虚拟接口B<T>.有更优雅的方式吗?

.net c# mono derived-class generic-type-argument

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

从ServiceStack返回一个包含一些JSON对象的字符串

我有以下DTO:

public class MyDTO
{
    public int Id { get; set; }

    public String Info { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

信息元素包含一些序列化JSON对象其可以具有多种不同的类型。在我的服务功能中,我使用return x.ConvertTo<MyDTO>()

我的问题是,是,由于ServiceStack是不知道的信息持有JSON,特殊字符(引号)信息被转义。

所以我得到

{"Id":15,"Info":"[\"Test1\",\"Test2\",\"Test3\"]"}
Run Code Online (Sandbox Code Playgroud)

从服务中获取,但实际上我想得到的是

{"Id":15,"Info":["Test1","Test2","Test3"]}
Run Code Online (Sandbox Code Playgroud)

是否可以通过某种方法告诉ServiceStack Info保留JSON数据,从而防止其转义字符串,而是将JSON值直接插入响应中?

PS:我的问题不是该问题的重复,该问题与将服务的默认DTO编码强制为JSON有关,而我的问题涉及某些类型的JSON编码如何发生。

c# json servicestack

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

管理员无法在 AWS KMS 中加密/解密

我正在 AWS 中使用密钥管理服务 (KMS),目前正在设置密钥策略

我创建了两个角色KmsUserKmsAdmin并将以下密钥策略附加到我的 CMK:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "KMS KeyAdmin access",
      "Effect": "Allow",
      "Principal": {"AWS": [
          "arn:aws:iam::1234567890:role/KmsAdmin",
      "arn:aws:iam::1234567890:user/myadmin"
      ]},
      "Action": [
        "kms:Create*",
        "kms:Describe*",
        "kms:Enable*",
        "kms:List*",
        "kms:Put*",
        "kms:Update*",
        "kms:Revoke*",
        "kms:Disable*",
        "kms:Get*",
        "kms:Delete*",
        "kms:TagResource",
        "kms:UntagResource",
        "kms:ScheduleKeyDeletion",
        "kms:CancelKeyDeletion"
      ],
    "Resource": "*"
    },
    {
      "Sid": "KMS KeyUser access",
      "Effect": "Allow",
      "Principal": {"AWS": [
          "arn:aws:iam::1234567890:role/KmsUser"
      ]},
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
      ],
      "Resource": "*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

问题是,现在如果我尝试使用我的密钥作为myadmin用户(附加了 …

amazon-web-services amazon-iam amazon-kms aws-policies

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

如何配置visual studio代码来编译scons?

我在 ubuntu 上安装了 vsc、python、scons。我还为 python 和相关工具安装了语法插件。我正在编辑 SConstruct 文件,我希望当我按“F5”时,它会调出 scons 来执行我的项目文件。

如何配置?

integration config compilation scons visual-studio-code

4
推荐指数
1
解决办法
5313
查看次数

模拟具有不同签名的方法,其中一个具有Object作为参数类型

我有以下接口

public interface IInfo
{
    bool IsCompatibleWith (Object informationObject);
}

public interface IInfo<T> : IInfo
{
    bool IsCompatibleWith (T informationObject);
}
Run Code Online (Sandbox Code Playgroud)

并尝试做以下模拟

Foo f = new Foo();
Mock<IInfo<Foo>> infoMock = new Mock<IInfo<Foo>>();
infoMock.Setup(i => i.IsCompatibleWith(f)).Returns(true);
Run Code Online (Sandbox Code Playgroud)

然后测试运行以下行

IInfo mockedInfo;
mockedInfo.IsCompatibleWith(f);
Run Code Online (Sandbox Code Playgroud)

问题是,Setup方法设置了IsCompatibleWith (T informationObject),而代码调用了IsCompatibleWith (Object informationObject)一个.如何设置两个签名?

c# nunit unit-testing moq mocking

3
推荐指数
1
解决办法
308
查看次数

使用更短的名称来访问 C# 中的类

只是需要一些建议,因为我对此很陌生。有什么办法可以缩短这个时间吗?

 Student.Classes.Enum.Enum.gender
Run Code Online (Sandbox Code Playgroud)

只是需要一种更聪明的方法来做到这一点。

c# asp.net

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

在 AWS 策略上的 Terraform 中使用模板文件,该策略使用 IAM 策略变量

我正在尝试使用 Terraform 在 AWS 中构建云基础设施。我想为 S3 存储桶添加一个策略,该策略通过templatefileterraform 的功能使用基于属性的授权 (ABAC)。我的问题是 terraform 和 AWS 使用的变量语法是相同的 ( ${...})。

这是策略模板:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowReadRole1",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::${bucketName}/*",
            "Effect": "Allow",
            "Principal": "*",
            "Condition": {
                "s3:ExistingObjectTag/myid": "${aws:PrincipalTag/myid}"
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

terrafrom 文件的相关部分是:

resource "aws_s3_bucket_policy" "mybuckets-policy" {
  bucket = aws_s3_bucket.mybuckets[count.index].bucket
  policy = templatefile("${path.module}/bucket-policy.json", {
    bucketName = aws_s3_bucket.mybuckets[count.index].bucket
  })
  count = 2
}
Run Code Online (Sandbox Code Playgroud)

所以我想要的是${bucketName}模板的一部分被 terraform 替换,同时保留 AWS 表达式${aws:PrincipalTag/user-id}。但是在上面的配置上运行 terraform 会导致错误消息

调用函数“templatefile”失败:./bucket-policy.json:14,49-50:插值表达式后出现额外字符;期望用右大括号结束插值表达式,但发现了额外的字符。

如果我在模板中放置另一个项目${foobar} …

amazon-web-services terraform terraform-template-file terraform-provider-aws aws-policies

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

使用 jq 查找 JSON 字典中不属于另一个字典的所有元素

我必须 JSON 文件。

a.json

[ 
  { key1: "foo", key2: "bar"},
  { key1: "foo", key2: "baz"},
  { key1: "bla", key2: "blubb"},
]
Run Code Online (Sandbox Code Playgroud)

b.json

[ 
  { key1: "foo", key2: "bar"},
  { key1: "foo", key2: "oof"},
  { key1: "bla", key2: "bla"},
]
Run Code Online (Sandbox Code Playgroud)

我想要的结果是一个数组,其中包含第一个字典的所有条目,这些条目不属于第二个字典的一部分(相当于 SQL 中 DISTINCT 运算符的作用)。所以预期的输出是:

[ 
  { key1: "foo", key2: "baz"},
  { key1: "bla", key2: "blubb"},
]
Run Code Online (Sandbox Code Playgroud)

我怎样才能使用 来实现这一点jq

bash json jq

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