我对在利用CQRS和事件采购的环境中实体的起源感到有些困惑.为了使我的问题清楚,让我们采取以下着名的网上商店示例:
您可以将订单建模为聚合根.订单接受订单行,订单行本身由产品和数量定义.
由于订单行是在订单处理过程中构建的实体,因此产品的概念似乎也是一个实体.但产品甚至产品目录来自哪里?在我看来,在订单的有限上下文中没有像产品聚合根这样的东西.那么订单背景如何知道产品实体呢?它们是否在另一个有界的上下文中维护并以某种方式在订单上下文的读取存储中实现?
我编写了一个新的FactoryComponentSelector,它能够通过名称解析特定接口的实例.到现在为止还挺好.但是,当涉及到我们应用程序的业务部分中的配置时,我需要一个容器外的给定接口的所有名称的列表.
假设我们有以下注册:
container.AddFacility<TypedFactoryFacility>();
container.Register(Component.For<ITypedFactoryComponentSelector>().ImplementedBy<CreateByNameComponentSelector>());
container.Register(Component.For<IProviderFactory>().AsFactory(c => c.SelectedWith<CreateByNameComponentSelector>()));
container.Register(Component.For<IProvider>().ImplementedBy<FirstProvider>().Named("First"));
container.Register(Component.For<IProvider>().ImplementedBy<SecondProvider>().Named("Second"));
container.Register(Component.For<IProvider>().ImplementedBy<ThirdProvider>().Named("Third"));
Run Code Online (Sandbox Code Playgroud)
有没有办法向容器询问实现接口IProvider的所有已注册组件的名称列表?