加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用依赖注入在构造函数外部创建类的新实例

发布时间:2020-12-15 23:24:31 所属栏目:百科 来源:网络整理
导读:我正在尝试一个示例应用程序来测试依赖注入.在使用DI之前,我的课程中有以下方法: public IQueryableBookDTO GetBooks(){ var books = from b in db.Books select new BookDTO() { Id = b.Id,Title = b.Title,AuthorName = b.Author.Name }; return books;}
我正在尝试一个示例应用程序来测试依赖注入.在使用DI之前,我的课程中有以下方法:

public IQueryable<BookDTO> GetBooks()
{
    var books = from b in db.Books
                select new BookDTO()
                {
                    Id = b.Id,Title = b.Title,AuthorName = b.Author.Name
                };

    return books;
}

BookDTO是另一个项目中定义的数据传输对象.现在我想把我的项目松散地结合在一起.所以我创建了IDTOBase接口并使BookDTO实现了这一点.我有一个统一容器,我已经将BookDTO类的相关注册到IDTOBase.

但是,如何在原始方法中重写LINQ查询?什么将取代“新BookDTO()”?

谢谢

解决方法

你从我想到的部分答案开始:’BookDTO是一个数据传输对象’.因此,抽象它几乎没有价值,因为它属于应用程序的一个非常特定的层.

BookDTO的作用是作为书籍的纯粹数据表示(以某种可能的可序列化形式).这将在应用程序堆栈中的低级别发生.任何需要使用此类数据的代码都应该创建一个可以在代码中使用的域对象“Book”.这将书籍数据(BookDTO)的持久性和检索与其域表示(Book)分离.

我不认为你的界面定义是为了这个目的,因此DI在这里没有用处.我认为DI在这里发挥作用的是书籍DTO的检索.加载书籍数据的类将注入此类服务并使用它来检索BookDTO实例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读