能否在.NET MAUI与ASP.NET Core应用间共享类库?
.NET MAUI与ASP.NET Core共享类库的实现方法
完全可以共享类库来复用数据模型,以下是具体实现步骤:
创建兼容的类库项目
在Visual Studio中新建类库,优先选择.NET 6或更高版本的类库(.NET MAUI和ASP.NET Core当前都稳定支持这些版本),也可以选择.NET Standard 2.0(兼容范围更广)。把你的数据模型类(纯POCO类,无平台依赖)放到这个类库中,比如:public class Product { public int Id { get; set; } public string Name { get; set; } = string.Empty; public decimal Price { get; set; } }在两个项目中引用类库
- 打开ASP.NET Core API项目,右键「添加」→「项目引用」,选择刚才创建的类库项目;
- 同样操作.NET MAUI项目,添加同一个类库的引用。
开发阶段用项目引用最方便,后续如果需要分发,也可以把类库打包成NuGet包,通过NuGet管理器安装。
注意事项
- 类库中不要包含任何平台特定的代码(比如MAUI的UI组件、ASP.NET Core的控制器特性等),只保留通用的模型、DTO、验证逻辑等;
- 确保类库的目标框架版本和两个项目兼容:比如MAUI最低要求.NET 6,ASP.NET Core从.NET 6开始长期支持,统一用.NET 6+版本即可避免兼容问题。
举个实际使用的例子:
- 在ASP.NET Core API中直接用模型作为返回类型:
[ApiController] [Route("api/products")] public class ProductsController : ControllerBase { [HttpGet] public IActionResult Get() { var sampleProducts = new List<Product> { new() { Id = 1, Name = "Wireless Headphones", Price = 199.99m } }; return Ok(sampleProducts); } } - 在.NET MAUI中调用API并接收模型数据:
private async Task FetchProducts() { using var client = new HttpClient(); var products = await client.GetFromJsonAsync<List<Product>>("https://your-api-domain/api/products"); // 将products绑定到CollectionView等UI控件的ItemsSource }
内容的提问来源于stack exchange,提问作者Slade
相关产品推荐
相关产品推荐

