Skip to main content

winform&wpf中开启http服务

前几天水群的时候看到有个老哥提了个问题

他想在wpf项目中开启一个http服务, 希望能有一个简单易用的方案

当时他的做法是使用 HttpListener 监听端口, 用起来还挺麻烦

.Net6 下可以非常简单地实现这个功能

修改 csproj

首先修改 csproj 项目文件

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>

使用 FrameworkReference 引入 Microsoft.AspNetCore.App 框架

这样就不需要单独引用零零碎碎的包

启动host

public partial class MainWindow : Window
{
public MainWindow()
{
Task.Run(() =>
{
var builder = WebApplication.CreateBuilder();
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
var app = builder.Build();
app.MapControllers();
app.Run();
});
InitializeComponent();
}
}

开启一个 Task

然后当成一般的 webapi 项目一样写即可

甚至可以把已有的 webapi 代码直接复制过来