一,创建空白解决方案WPF With Asp.Net WebApi
二,创建.Net5的WPF项目WpfApp
三,创建.Net5的Asp.Net WebApi项目WebApiProvidor
四,修改WebApiProvider项目与WpfApp项目
- 修改WebApiProvider项目的输出类型
![](https://img2020.cnblogs.com/blog/1235916/202011/1235916-20201124200713868-1595026028.png)
- 复制WebApiProvider项目的Startup.cs、appsettings.json、Programe.cs中的Host初始化部分的代码到WpfApp中, 删除WebApiProvider中无用的代码
- WpfApp项目中App.xaml.cs
| using System.Windows; |
| using Microsoft.AspNetCore.Hosting; |
| using Microsoft.Extensions.Hosting; |
| |
| namespace WpfApp |
| { |
| |
| |
| |
| public partial class App : Application |
| { |
| protected override void OnStartup(StartupEventArgs e) |
| { |
| base.OnStartup(e); |
| |
| Host.CreateDefaultBuilder() |
| .ConfigureWebHostDefaults(webBuilder => |
| { |
| webBuilder.UseStartup<Startup>(); |
| }).Build().RunAsync(); |
| } |
| } |
| } |
- 添加Model与Controller到WpfApp项目中
| using System; |
| |
| namespace WpfApp.Models |
| { |
| public class Foo |
| { |
| public DateTime Registration { get; set; } |
| public int Age { get; set; } |
| public string Address { get; set; } |
| } |
| } |
| using System; |
| using System.Collections.Generic; |
| using System.Linq; |
| using Microsoft.AspNetCore.Mvc; |
| using Microsoft.Extensions.Logging; |
| using WebApiProvider.Controllers; |
| using WpfApp.Models; |
| |
| namespace WpfApp.Controllers |
| { |
| [ApiController] |
| [Route("[controller]")] |
| public class FooController: ControllerBase |
| { |
| private static readonly string[] Addresses = new[] |
| { |
| "Hubei", "Guangzhou", "Shengzhen", "Beijing", "Shandong", "Jingmen", "Wuhan", "Jingshan" |
| }; |
| |
| private readonly ILogger<WeatherForecastController> _logger; |
| |
| public FooController(ILogger<WeatherForecastController> logger) |
| { |
| _logger = logger; |
| } |
| |
| [HttpGet] |
| public IEnumerable<Foo> Get() |
| { |
| var rng = new Random(); |
| return Enumerable.Range(1, 5).Select(index => new Foo() |
| { |
| Registration = DateTime.Now.AddDays(index), |
| Age = rng.Next(12, 55), |
| Address = Addresses[rng.Next(Addresses.Length)] |
| }) |
| .ToArray(); |
| } |
| } |
| } |
- 修改WpfApp项目的Project文件的
<Project Sdk="Microsoft.Net.Sdk.WindowsDesktop">
修改为<Project Sdk="Microsoft.Net.Sdk">
修改后的项目结构如下
![](https://img2020.cnblogs.com/blog/1235916/202011/1235916-20201124200732186-319117409.png)
五,运行效果如下
![](https://img2020.cnblogs.com/blog/1235916/202011/1235916-20201124200747215-89788987.png)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· 趁着过年的时候手搓了一个低代码框架
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现