我的应用程序使用autofac IoC。它包含一个与外部应用程序建立连接的层(创建"协议"对象) - 因此,我从之前的问题中意识到我应该使用autofac工厂:
我有一个侧面项目,包括所有autofac nugets和dll。这个提供了我用于在我的应用程序中注册类型的特定API:
RegisterType
RegisterTypeAndAutowireProperties
RegisterConfigurationObject
RegisterInstance
BuildContainer
UpdateContainer
我相信这个API是通用的,适合任何想要使用IoC容器的应用程序。
我的问题在于工厂。例如,在我当前的应用程序中,我需要一个协议工厂(它是键控的,并且依赖于许多键控服务)。每个协议对象都采用不同种类和数量的服务,因此,除了为每个协议注册制定明确的方法之外,我还没有其他办法,如果我是正确的。
现在,下一个要使用此IoC API的应用程序会发生什么?它可能没有此应用程序包含的协议,这将迫使我更新每个应用程序的IoC API。有没有办法让我的IoC包装器通用 - 让它适合任何应用程序,无论它包含哪种类型?如果您有任何想法,请与我分享!
谢谢
编辑:
我会尝试使其更清晰,我只使用Autofac。这个"包装"是一个提供autofac的项目,它提供了IoC的基本API。现在我只在application1中使用这个项目。 但是如果明天我开始开发application2,我想使用这个相同的包装器。因此,我的包装器项目中没有适合特定应用程序的工厂。这是我的问题