zoukankan      html  css  js  c++  java
  • ABP 领域服务层学习记录

    在ABP框架中有一个约定,所有的领域服务都应该继承并实现IDomainService接口,在领域层Core创建某一个实体的领域服务类,继承并实现IDomainService接口。在ABP框架中,领域服务类的命名习惯一般时xxxManager。
    namespace MyTestProject.ShoppingGoods
    {
        /// <summary>
        /// 领域服务接口
        /// </summary>
        public interface IGoodsManager:IDomainService
        {
            //书写接口
        }
    }
    namespace MyTestProject.ShoppingGoods
    {
        /// <summary>
        /// 领域服务
        /// </summary>
        public class GoodsManager : DomainService, IGoodsManager
        {
            public GoodsManager()
            {
            }
    
            //实现接口
        }
    }
    在AppService中将IGoodsManager 注入进去
    namespace MyTestProject.ShoppingGoods
    {
        public class GoodssAppService : MyTestProjectAppServiceBase, IApplicationService
        {
            public readonly IGoodsManager _goodsManager;
    
            public GoodssAppService(IGoodsManager goodsManager)
            {
                _goodsManager = goodsManager;
            }
        }
    }
    
    

    上面的这种方式为,当在某个情况下,领域服务不仅要给appservice提供服务,也要向外部提供服务时,需要与上面的方式书写。当只是给appservice提供服务,使用下面的方式就OK了

    namespace MyTestProject.ShoppingGoods
    {
        /// <summary>
        /// 领域服务
        /// </summary>
        public class GoodsManager : DomainService
        {
            private readonly IRepository<Goods, Guid> _goodsRepository;
    
            public GoodsManager(IRepository<Goods, Guid> goodsRepository)
            {
                _goodsRepository = goodsRepository;
            }
    
            //实现
            public async Task<Guid> CreateAsync(Goods goods)
            {
                return await _goodsRepository.InsertAndGetIdAsync(goods);
            }
        }
    }
    在AppService中将GoodsManager 注入进去
    namespace MyTestProject.ShoppingGoods
    {
        public class GoodssAppService : MyTestProjectAppServiceBase, IApplicationService
        {
            //public readonly IGoodsManager _goodsManager;
            public readonly GoodsManager _goodsManager;
    
            public GoodssAppService(GoodsManager goodsManager)
            {
                _goodsManager = goodsManager;
            }
        }
    }
    
    
  • 相关阅读:
    A Bug's Life(削弱版食物链)
    The Suspects
    Find The Multiple
    Lake Counting(dfs)
    经典dfs(depth-first search)
    喝啤酒(预防老年痴呆的深度搜索)
    C语言的位运算的优势 !
    Oil Deposits
    Catch That Cow
    HTML 003 元素
  • 原文地址:https://www.cnblogs.com/moonstars/p/15097850.html
Copyright © 2011-2022 走看看