小编Cla*_*pel的帖子

How to create an Azure.AsyncPageable for mocking?

I would like to mock a C# method that returns an Azure.AsyncPageable.

这个类只有受保护的构造函数,所以我不能直接实例化它。有没有办法从其他集合(例如IAsyncEnumerable或只是List )创建此类的实例?

c# paging asynchronous mocking azure

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

如何在没有 Cloud Explorer 的情况下从 Azure 应用服务获取事件日志文件?

我有 Azure 应用服务。在 Visual Studio 2019 中,我可以执行以下操作来从中获取事件日志:

  1. 打开Cloud Exlorer窗口(查看 -> Cloud Explorer)。
  2. 使用我的 Azure 凭据登录。
  3. 展开订阅,然后展开资源组,然后展开应用服务。
  4. 展开文件夹日志文件
  5. 双击eventlog.xml进行下载。

在 Visual Studio 2022 中,没有云资源管理器。他们建议我们改用 Azure 存储资源管理器。我无法在存储资源管理器中找到事件日志文件。

有谁知道如何在没有 Visual Studio 2019 的情况下从 GUI 或命令行获取它?

在此输入图像描述

logging event-log azure-storage-explorer visual-studio-2022

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

C# 源代码生成器:如何调试生成代码中的编译器错误?

我正在尝试使用C# 源生成器。我花了大约一天的时间,我发现这是一次非常令人沮丧和痛苦的经历。IntelliSense 极其不可靠。它偶尔会起作用,但大多数情况下不会起作用,而且我无法找出任何系统。(重新启动 Visual Studio 没有帮助。)

但更根本的是,我在调试生成的代码中的错误时遇到了很大的麻烦。当我在源生成器中的模板中犯错误并尝试编译时,我可能会在生成的文件中收到诸如“方法必须有返回类型”之类的错误。但是当我双击错误时,它不会将我带到生成的代码。这使得很难看出它出了什么问题。

有什么窍门吗?当编译失败时,有什么方法可以检查生成的代码吗?更一般地说,生成的代码何时可用于 IntelliSense,何时不可用,由什么决定

我使用的是 Visual Studio Professional 2022 版本 17.1.6 和 ReSharper 2022.1。

提前致谢!

c# code-generation visual-studio sourcegenerators

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

当运行具有并发限制的 GitHub 操作时,我可以让工作流运行排队而不是取消吗?

GitHub actions 的文档说

您可以使用 jobs.<job_id>.concurrency 确保一次仅运行一个使用相同并发组的作业或工作流。

...

当并发作业或工作流排队时,如果使用存储库中相同并发组的另一个作业或工作流正在进行中,则排队的作业或工作流将处于挂起状态。并发组中任何先前挂起的作业或工作流都将被取消。

以前待处理的作业被取消是很烦人的。显然,编排逻辑只能维护一(1)个待处理作业的微小“队列”。

我希望能够有多个作业排队。即,如果我快速连续触发 5 个作业,并且它们都属于同一个并发组,则第一个作业立即开始运行(当运行程序可用时),接下来的 4 个作业将排队并等待轮到运行,一次一个。

有什么办法可以实现这一点吗?或者我需要向 GitHub 请求此功能吗?

queue concurrency github-actions

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

如何防止同一分支并行运行 GitHub 操作(包括拉取请求)?

我有一个 GitHub 操作。它可以从分支、拉取请求或手动触发。我想实现以下目标:决不能有两个来自同一分支的操作​​并行运行,包括来自该分支的拉取请求。

我最好的想法是这样做(伪代码):

concurrency: {{ if github.head_ref is nonempty then github.head_ref else github.ref }}
Run Code Online (Sandbox Code Playgroud)

当作业由 PR 触发时,github.head_ref包含源分支的名称。当作业从分支触发时,github.ref包含分支名称。所以上面的表达式应该可以解决我的问题,除了它不是有效的 GitHub 操作代码,而且我无法弄清楚是否可以制作这样的表达式。

我可以编写一个表达式或表达式组合来实现上述目的吗?或者我可以通过其他方式解决我的根本问题吗?

github-actions

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

当文件显然应该存在时,为什么 JsonConfigurationSource 会抛出 FileNotFoundException?

考虑以下 C# 代码:

var json = "{ \"LogLevel\": \"Debug\" }";
const string filePath = @"C:\temp\tempconfiguration.json";
File.WriteAllText(filePath, json);
var jsonConfigurationSource = new JsonConfigurationSource { Path = filePath };
var jsonConfigurationProvider = new JsonConfigurationProvider(jsonConfigurationSource);
var configuration = new ConfigurationRoot(new List<IConfigurationProvider> { jsonConfigurationProvider });
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,它会抛出:

System.IO.FileNotFoundException
The configuration file 'C:\temp\tempconfiguration.json' was not found and is not optional.
Run Code Online (Sandbox Code Playgroud)

这对我来说毫无意义。该文件显然存在(我可以在 Windows 资源管理器中看到它)。谁能向我解释这里发生了什么?提前致谢!

(我知道我也可以用来JsonStreamConfigurationProvider从流中读取,但我希望也能够从文件中读取配置。主要是因为JsonStreamConfigurationProvider不支持IConfigurationRoot.Reload。)

我正在运行 .NET 5.0 和 C# 9。

c# configuration filenotfoundexception

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