欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用DotNet 5在WPF中托管ASP.NET Web API:第四步 - 修改WebApiProvider和WpfApp项目

最编程 2024-01-14 17:03:45
...

1、修改WebApiProvider项目的输出类型

修改WebApiProvider项目的输出类型

复制WebApiProvider项目的Startup.cs、appsettings.json、Programe.cs中的Host初始化

部分的代码到WpfApp中, 删除WebApiProvider中无用的代码

3、WpfApp项目中App.xaml.cs

using System.Windows;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
namespace WpfApp
{
  /// <summary>
  /// Interaction logic for App.xaml
  /// </summary>
  public partial class App : Application
 {
    protected override void OnStartup(StartupEventArgs e)
   {
      base.OnStartup(e);
      Host.CreateDefaultBuilder()
       .ConfigureWebHostDefaults(webBuilder =>
       {
          webBuilder.UseStartup<Startup>();
       }).Build().RunAsync();
   }
 }
}

4、添加Model与Controller到WpfApp项目中

using System;
namespace WpfApp.Models
{
  public class Foo
 {
    public DateTime Registration { getset; }
    public int Age { getset; }
    public string Address { getset; }
 }
}
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 FooControllerControllerBase
 {
    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(15).Select(index => new Foo()
       {
          Registration = DateTime.Now.AddDays(index),
          Age = rng.Next(1255),
          Address = Addresses[rng.Next(Addresses.Length)]
       })
       .ToArray();
   }
 }
}

5、修改WpfApp项目的Project文件的 <Project

Sdk="Microsoft.Net.Sdk.WindowsDesktop"> 修改为 修改后的项目结构如下