问题标签 [minimal-apis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何以与主要方法不同的方法返回文件?
我想通过Results.File()
. 它在 main 方法 ( app.MapGet
) 中执行时有效,但是在不同的方法中返回它什么都不做。它应该发送文件的行在调试器中执行,但是它不返回,而是跳回到主方法执行最后一个返回(永远不应该执行的那个)。最后一次返回确实返回了一个结果。
我也使用了几种方法,例如Result.BadRequest()
,但是当它不在 main 方法中时,什么都不执行。
我看到人们使用IResult
作为返回方法,但我不确定这是否正确。
我的猜测可能是错误的返回类型或执行任务左右。
整体方法:
c# - 最小 API NUnit 测试:缺少 testhost.deps.json
在我的 .NET6 项目中,我有一些最小的 API,我想测试它们。您可以在GitHub 上找到完整的源代码。为此,我创建了一个新的 NUnit 测试项目。在项目文件中,我添加PreserveCompilationContext
了,文件看起来像
然后,我像这样创建了 WebApplicationFactory 的实现
最后,我的测试课是这样的
当我运行项目时,我收到一个错误
System.InvalidOperationException:找不到“C:\Projects\Net6MinimalAPIs\MinimalApis.Tests\bin\Debug\net6.0\testhost.deps.json”。此文件是功能测试正常运行所必需的。您的源项目 bin 文件夹中应该有该文件的副本。如果不是这种情况,请确保在项目文件中将属性 PreserveCompilationContext 设置为 true。例如“真实”。要使功能测试正常工作,它们需要从构建输出文件夹运行,或者必须将应用程序输出目录中的 testhost.deps.json 文件复制到运行测试的文件夹中。此错误的一个常见原因是在测试运行时启用了卷影复制。
我用谷歌搜索了一下,但我找不到如何生成这个文件。
更新
我试图添加一个xUnit
具有相同结果的项目。另外,我注意到它Program
来自
因为我添加了这个参考,但这是错误的。我想参考Program
主项目中的 ,但由于它的保护级别,它是不可访问的。Program.cs
外观_
asp.net-core - 我可以从 .NET 6.0 最小托管中的 DI 容器/Lamar 创建一个对象,保留单例吗?
我们已从 Windows Framework 4.7 应用程序迁移到 .NET 6.0。为依赖注入添加了 Lamar。我们正在尝试完成对最新“单文件”program.cs 的重构,但出现意外 System.ObjectDisposedException:“无法访问已处置的对象”。在所有情况下,错误都是针对Func<T>
对象创建期间的。
我们所有的测试都使用相同的环境正确运行,除了开始测试我们(a)创建 DI 容器和(b)使用容器创建加载单例的对象(来自 MongoDB):
在 program.cs 中,我们配置容器,但看不到它已创建或在 program.cs 中访问它。相反,我们在第一次使用控制器期间从 IServiceProvider 创建 HomeService。在这里,我们试图在创建期间限制生命周期范围:
对于测试,我们使用相同的加载步骤,当然,除了添加控制器/mvc(即不使用 builder.Services.AddControllers(); 和 builder.Services.AddMvc() 进行(集成)测试)。
我们尝试了很多不同的事情,比如独立于启动创建我们的对象,但这并没有对齐单例。我们可以通过使用静态来获得功能,但随后我们失去了动态更改访问权限。
一些很棒的技巧,例如在 ConfigureServices和https://andrewlock.net/exploring-dotnet-6-part-10-new-dependency-injection-features-in-dotnet-6/中使用 ASP.NET Core DI 解析实例,但我在初始创建后看不到获取实时容器的具体示例。
问题是否可能只是新的 .NET DI 实现的生命周期管理之间的区别?由于这是组合根的配置,如果我们可以按照我们的测试方法进行配置,它应该可以解决我们的问题。欢迎其他解决方案!
c# - 如何在 net 6 和最小 api 中返回内容类型为 json 的 json 字符串?
如果我有一个 json 字符串(例如从文件中读取)并且我的 api 作为字符串返回,邮递员会将响应视为文本
那么如何将内容类型强制为 application/json?(请不要使用 Newtonsoft)我可以使用这种解决方法,但看起来很难看
谢谢
c# - 如何使用 ASP.NET 最小 API 为不同的端点返回不同的缓存控制标头?
我想使用 ASP.NET 最小 API 为不同的端点返回不同的缓存控制标头值。我们如何在没有控制器的情况下做到这一点?
这可以使用控制器来完成,如下所示:
第一个端点返回标头Cache-Control: public,max-age=3600
。
第二个端点返回标头Cache-Control: no-cache,max-age=0
。
c# - 为实体框架创建与其他记录有关系的记录:ASP.NET Core 6 Minimal API (SQL / Postgres)
我有两个表,Participant
并且Meeting
在 ASP.NET Core 6 最小 API 项目中设置如下:
现在我需要创建一个连接这两个表/记录的组合表/记录
在 SQL 中,这将是这张表
但是我如何将它作为带有外键的记录写在 EF 中?
c# - 知道为什么 foo 返回空体吗?
由于某种原因 foo 总是返回一个空的主体:
asp.net-mvc - How to serve video file / stream from ASP Net Core 6 Minimal API
I was trying to achieve this following different tutorials but did not succeed. How do I handle a http range request in minimal API to serve video stream ?
I have this bare minimal setup code for API with a single GET path "/video" mapped. I also made a folder "wwwroot" inside project folder. I placed in there a mp4 video file named "test.mp4". Would it be possible for someone knowledgeable to write a simple example of how to stream this file inside my mapped route ?
c# - Web API 如何知道客户端文化/语言
我们有一个新的 GET 服务端点,它需要 DateTime 和 Decimal 数据以及其他参数。为简单起见,这代表我们的请求,还没有任何修复:
我们以字符串形式接收数据,因为我们的一些客户位于不同的国家,根据他们的文化采用不同的格式。
我们想要求客户在请求中的某处发送他们的文化,以便能够正确处理接收到的数据。
好吧,在这里,我们为客户找到了许多替代方案,可将其包含在他们的请求中,但我不确定哪种方案最适合或最适合执行此操作:
接受语言标头:似乎表明他们期望在响应中使用哪种文化,与参数无关。不是我们的情况,因为我们的回答只是 200(OK)。
content-language标头:似乎表示正文的语言。由于我们没有收到body,而是一个查询字符串,我怀疑我们应该使用它。
查询中的一个附加参数,例如:
用于相同目的的自定义标头。
其他建议是将日期接收为 UTC+0,但我认为客户不应该担心删除偏移量。
有没有标准的方法来做到这一点?