c# – Unity Container Resolve
发布时间:2020-12-15 08:48:08 所属栏目:百科 来源:网络整理
导读:我刚开始使用Unity Container,我的注册看起来像这样: static void UnityRegister(){ _container = new UnityContainer(); _container.RegisterTypeIBook,Book(); _container.RegisterTypeIBookRepository,BookRepository("Book"); _container.RegisterTypeI
我刚开始使用Unity Container,我的注册看起来像这样:
static void UnityRegister() { _container = new UnityContainer(); _container.RegisterType<IBook,Book>(); _container.RegisterType<IBookRepository,BookRepository>("Book"); _container.RegisterType<IBookService,BookService>(); _container.RegisterType<IBookRepository,DatabaseRepository>("Database"); } 现在当我尝试解决这个问题: var service = _container.Resolve<IBookService>("Database"); 我收到以下错误:
At the time of the exception,the container was: Resolving UnityConsoleEx.IBookService,Database 谁能指出我做错了什么? 解决方法
主要问题是您没有为BookService使用命名实例.
_container.RegisterType<IBookService,BookService>(); 但是您正尝试使用命名实例进行解析. var service = _container.Resolve<IBookService>("Database"); 您需要在没有名称的情况下解析以获取该实例. var service = _container.Resolve<IBookService>(); 但是,从您的示例中不清楚为什么您首先使用命名实例.如果发布服务的构造函数,将更清楚如何使配置工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |