7.4在 File-Based Apps 应用中使用
从 .NET 10 SDK 开始,.NET 提供了 File-Based Apps(基于文件的应用)能力:无需创建项目文件(.csproj)和解决方案,只需一个 .cs 源文件即可构建、运行和发布应用程序,依赖与配置通过文件顶部的 #: 指令声明(支持 #:include、#:package、#:project、#:property 和 #:sdk 指令)。
关于
File-Based Apps的完整指令说明与更多用法,请参阅微软官方文档「基于文件的应用(File-based apps)」。
由于 File-Based Apps 没有项目文件,无法使用 dotnet add package 命令安装包,需要通过 #:package 指令引用 HttpAgent 包。HTTP 远程请求自 1.53 版本开始完整支持 File-Based Apps 应用类型,请使用该版本及以上版本(@* 表示引用最新版本,当前最新版本为 2.1.5):
1. 编写 app.cs 文件
#:package HttpAgent@*using HttpAgent;var result = await HttpRemoteClient.Service.GetAsStringAsync("https://furion.net/");Console.WriteLine(result);说明:
#:package指令后省略版本号目前仅在使用Directory.Packages.props中央包管理时有效,因此这里使用@*引用最新版本;也可以显式指定版本,如#:package HttpAgent@2.1.5。
2. 运行应用程序
在终端中执行以下命令即可直接运行:
dotnet run app.cs也可以使用 --file 选项:dotnet run --file app.cs,或使用简写语法:dotnet app.cs。如需向应用程序传递参数,将参数放在 -- 之后:dotnet run app.cs -- arg1 arg2。
3. 启用请求分析工具(可选)
如果需要在请求时打印完整的请求/响应报文,可以在文件中调用 HttpRemoteClient.Configure 方法配置默认的 HttpClient:
#:package HttpAgent@*using HttpAgent;HttpRemoteClient.Configure(services =>{ services.AddHttpClient(string.Empty).AddProfilerDelegatingHandler();});var result = await HttpRemoteClient.Service.GetAsStringAsync("https://furion.net/");Console.WriteLine(result);