I would like to mock a C# method that returns an Azure.AsyncPageable.
这个类只有受保护的构造函数,所以我不能直接实例化它。有没有办法从其他集合(例如IAsyncEnumerable或只是List )创建此类的实例?
我有 Azure 应用服务。在 Visual Studio 2019 中,我可以执行以下操作来从中获取事件日志:
在 Visual Studio 2022 中,没有云资源管理器。他们建议我们改用 Azure 存储资源管理器。我无法在存储资源管理器中找到事件日志文件。
有谁知道如何在没有 Visual Studio 2019 的情况下从 GUI 或命令行获取它?
我正在尝试使用C# 源生成器。我花了大约一天的时间,我发现这是一次非常令人沮丧和痛苦的经历。IntelliSense 极其不可靠。它偶尔会起作用,但大多数情况下不会起作用,而且我无法找出任何系统。(重新启动 Visual Studio 没有帮助。)
但更根本的是,我在调试生成的代码中的错误时遇到了很大的麻烦。当我在源生成器中的模板中犯错误并尝试编译时,我可能会在生成的文件中收到诸如“方法必须有返回类型”之类的错误。但是当我双击错误时,它不会将我带到生成的代码。这使得很难看出它出了什么问题。
有什么窍门吗?当编译失败时,有什么方法可以检查生成的代码吗?更一般地说,生成的代码何时可用于 IntelliSense,何时不可用,由什么决定?
我使用的是 Visual Studio Professional 2022 版本 17.1.6 和 ReSharper 2022.1。
提前致谢!
您可以使用 jobs.<job_id>.concurrency 确保一次仅运行一个使用相同并发组的作业或工作流。
...
当并发作业或工作流排队时,如果使用存储库中相同并发组的另一个作业或工作流正在进行中,则排队的作业或工作流将处于挂起状态。并发组中任何先前挂起的作业或工作流都将被取消。
以前待处理的作业被取消是很烦人的。显然,编排逻辑只能维护一(1)个待处理作业的微小“队列”。
我希望能够有多个作业排队。即,如果我快速连续触发 5 个作业,并且它们都属于同一个并发组,则第一个作业立即开始运行(当运行程序可用时),接下来的 4 个作业将排队并等待轮到运行,一次一个。
有什么办法可以实现这一点吗?或者我需要向 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 操作代码,而且我无法弄清楚是否可以制作这样的表达式。
我可以编写一个表达式或表达式组合来实现上述目的吗?或者我可以通过其他方式解决我的根本问题吗?
考虑以下 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# ×3
asynchronous ×1
azure ×1
concurrency ×1
event-log ×1
logging ×1
mocking ×1
paging ×1
queue ×1