You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 11:35:11