小编Cow*_*org的帖子

向 Automapper ForMember 添加额外参数的简单方法

所以,我有一个 ObjectFrom 到 ObjectTo 的映射。' 所有映射都可以通过 ObjectFrom.propX -> ObjectTo.propX2 完成。但是 ObjectTo 中还有一个属性需要有一个固定值(对于每个映射),我们称之为“CallerName”,它与 ObjectFrom 无关。

我可以以某种方式在映射中添加额外的参数吗?我不想包装我的 ObjectFrom 也不使用 AfterMap(),因为我想强制调用者提供 CallerName 以确保其被填充。

当谷歌搜索这个问题时,我发现一个解决方案比另一个更复杂。有没有一种简单的方法可以做到这一点?

(Asp Net Core,最新版本的automapper)

c# automapper asp.net-core

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

如何避免“对不可为空的实体进行可能的“空”分配”

抱歉举了这个尴尬的例子,但我想尽可能保持重点

可以说,我已经解析了一个 json 文件,它给出了下面的层次结构

var customers = myObj.SubObj?.CustomerList.EmptyIfNull();
var plusCustomers = customers.Where(...) // Resharper warning
Run Code Online (Sandbox Code Playgroud)

myobj 不能为 null SubObject 有时可以为 null

我有一个扩展方法

IEnumerable<T> EmptyIfNull<T>(this IEnumerable<T> enumerable) => enumerable ?? Enumerable.Empty<T>();
Run Code Online (Sandbox Code Playgroud)

所以我希望 plusCustomers 行是安全的(空列表而不是 null)。但我收到警告

可能对不可为空实体进行“空”分配

如果我将第一行替换为

var customers = myObj.SubObj.CustomerList.EmptyIfNull();
Run Code Online (Sandbox Code Playgroud)

我去掉了警告,但这不正确。我怎样才能让 Resharper 相信这没问题?...或者我错了?

c# resharper

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

如何kubernetes“ kubectl应用”不会更新现有部署

我有一个.NET核心的Web应用程序。这已部署到Azure容器注册表。我使用以下命令将其部署到我的Azure Kubernetes服务

kubectl apply -f testdeployment.yaml

与下面的yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myweb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myweb
  template:
    metadata:
      labels:
        app: myweb
    spec:
      containers:
      - name: myweb
        image: mycontainerregistry.azurecr.io/myweb:latest
        ports:
        - containerPort: 80
      imagePullSecrets:
        - name: my-registry-key
Run Code Online (Sandbox Code Playgroud)

这很出色,但是当我更改一些代码时,将新代码推送到容器并运行

kubectl apply -f测试部署

再次,直到我使用以下命令删除部署后,AKS /网站才会更新

kubectl删除部署myweb

我应该怎么做才能使其覆盖已部署的内容?我想在我的yaml文件中添加一些内容。(我试图将其用于Azure DevOps中的连续交付)。

kubernetes azure-kubernetes azure-aks

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

有没有办法从 Grpc-request 获取进度消息

我们的 asp net core api 中有 Grpc-api。我们的一些操作需要很长时间。我可以通过某种简单的方式向我的客户发回进度消息吗?

例如“从提供者 1 读取...”、“从提供者 2 读取...”、“计算内容...”。

由于最终结果是一条小消息,需要很短的时间发回,我认为流回数据没有意义,它的处理需要时间。

我尝试过谷歌搜索,但失败了

grpc asp.net-core

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

HttpContext.TraceIdentifier 始终相同(和 Guid)

我正在为我的 .NET Core webapi 设置日志记录,并希望为一个请求拥有一个唯一的 ID。

经过一番谷歌搜索后,我发现 Serilog 用于HttpContext.TraceIdentifier此目的,它应该看起来像“0HL0GJPLR7AOD”。

如果我在控制器方法中设置一个断点,我会得到HttpContext.TraceIdentifier一个 Guid,更糟糕的是,它每次都相同,而不是每个请求一个(800000ad-0002-fb00-b63f-84710c7967bb)。

这也是在 serilog 中显示为“RequestId”的内容,但我的主要问题是为什么不是HttpContext.TraceIdentifier“某些文本”格式以及为什么每个请求都相同?

serilog asp.net-core

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

当 S3 上有新文件时,在 Kafka 上获取事件/消息

我对 AWS 很陌生,对 Kafka 也很陌生(使用 Confluence 平台和 .NET)。

我们将接收大文件 (~1-40+Mb) 到我们的 S3 存储桶,并且其消费端应该处理这些文件。我们将通过 Kafka 发送所有消息。

我读过你不应该通过 Kafka 发送大文件,但也许我在这里被误导了?

如果我们只想获取一个新文件已到达我们的 S3 存储桶的事件(当然还有对其的某种引用),我们该怎么办?

amazon-s3 apache-kafka confluent-kafka-dotnet

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