亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Linqpad 6(核心)和.Net Core Api?

Linqpad 6(核心)和.Net Core Api?

C#
茅侃侃 2023-07-09 16:35:48
Linqpad 6 支持.Net Core。當我在 Visual Studio 中創建新的空 .Net Core API 解決方案時,我得到一個帶有簡單演示控制器的簡單模板。當我在 Visual Studio 中運行它時,它使用命令行服務器(kestrel)來運行項目:所以我想看看是否可以在 Linqpad 6 中運行這個項目。所以我已經安裝了所有 nuget 并將代碼復制到 Linqpad :void Main(){? ? CreateWebHostBuilder(new string[] { "" }).Build().Run();}public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>? ? ? ? WebHost.CreateDefaultBuilder(args)? ? ? ? ? ? .UseStartup<Startup>();[Route("api/[controller]")][ApiController]public class ValuesController : ControllerBase{? ? [HttpGet]? ? public ActionResult<IEnumerable<string>> Get()? ? {? ? ? ? return new string[] { "value1", "value2" };? ? }}public class Startup{? ? public Startup(IConfiguration configuration)? ? {? ? ? ? Configuration = configuration;? ? }? ? public IConfiguration Configuration { get; }? ? // This method gets called by the runtime. Use this method to add services to the container.? ? public void ConfigureServices(IServiceCollection services)? ? {? ? ? ? services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);? ? }? ? // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.? ? public void Configure(IApplicationBuilder app, IHostingEnvironment env)? ? {? ? ? ? //if (env.IsDevelopment())? ? ? ? {? ? ? ? ? ? app.UseDeveloperExceptionPage();? ? ? ? }? ? ? ? app.UseMvc();? ? }}我確實看到它現在正在監聽:但是調用http://localhost:5000/api/valuesdo 得到 acked ,但沒有來自控制器的 json 值響應:問題:如何讓 Linqpad 從控制器返回值?(一個簡單的json)
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

LINQPad 執行代碼的方式存在差異,這可能會導致此問題不起作用。

作為一個腳本工具,LINQPad 將所有內容包裝在一個類中(否則,該Main方法將無處可存)。所以ValuesController實際上最終會成為嵌套類型 ,UserQuery.ValuesController這可能會擾亂路由 API。

對于這種情況,LINQPad 能夠提取所有嵌套類型并將它們移到 UserQuery 之外(使用 Roslyn API)。要啟用此功能,請將以下內容添加到查詢的開頭:

#LINQPad?nonest

其他需要考慮的事情是默認的 MVC 項目包含一個 appsettings.json 文件。如果 LINQPad 中的代碼需要這樣做,則需要創建這樣一個文件并添加對它的引用(當您引用非二進制文件時,LINQPad 會將其復制到輸出文件夾中,這正是 appsettings.json 需要的位置成為)。

編輯:“查詢屬性”對話框中現在有一個復選框,用于將 ASP.NET Core 引用添加到 LINQPad 6 中的查詢。這會直接從共享框架文件夾中提取程序集,并且比查找正確的 NuGet 包更容易。


查看完整回答
反對 回復 2023-07-09
  • 1 回答
  • 0 關注
  • 154 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號