C# 自动传真机

C# 自动传真机,c#,dependency-injection,inversion-of-control,autofac,C#,Dependency Injection,Inversion Of Control,Autofac,我的应用程序使用autofac IoC。它包含一个与外部应用程序建立连接的层(创建“协议”对象)-因此,我从前面的问题中意识到我应该使用autofac factory: 我有一个附带项目,包括所有的autofac Nuget和DLL。这一个提供了我用于在应用程序中注册类型的特定API: 注册表类型 注册表类型和自动连线属性 RegisterConfiguration对象 注册表状态 构建容器 更新容器 我相信这个API是通用的,适合任何希望使用IoC容器的应用程序 我的问题是工厂。例如,在我当

我的应用程序使用autofac IoC。它包含一个与外部应用程序建立连接的层(创建“协议”对象)-因此,我从前面的问题中意识到我应该使用autofac factory:

我有一个附带项目,包括所有的autofac Nuget和DLL。这一个提供了我用于在应用程序中注册类型的特定API:

注册表类型
注册表类型和自动连线属性
RegisterConfiguration对象
注册表状态
构建容器
更新容器

我相信这个API是通用的,适合任何希望使用IoC容器的应用程序

我的问题是工厂。例如,在我当前的应用程序中,我需要一个协议工厂(这些协议是键控的,并且也依赖于许多键控服务)。每个协议对象接受不同种类和数量的服务,因此如果我是正确的,除了为每个协议注册创建一个显式方法外,我没有其他方法

现在,在下一个希望使用此IOCAPI的应用程序中会发生什么?它可能没有这个应用程序包含的协议,这将迫使我为每个应用程序更新IOCAPI。有没有办法让我的IoC包装器保持通用性——使它适合任何应用程序,无论它包含何种类型?如果你有任何想法,请与我分享

多谢各位

编辑:

我会尽量说清楚,我只使用Autofac。这个“包装器”是一个项目,它引用了提供IoC基本API的autofac。目前,我仅在application1中使用此项目。
但如果明天我开始开发application2,我想使用相同的包装器。因此,我的包装器项目中不能有适合特定应用程序的工厂。这是我的问题

能否请您详细说明“为每个应用程序更新IoC API”?您是否正在尝试创建一个包装API,可以包装任何(或多个)IOC容器(例如Unity、AutoFac、StructureMap)?已编辑,希望现在更清楚为什么不将每个应用程序的工厂移到应用程序本身?具体地说,是为了应用程序的安全。关键是我尽量不在我的应用程序的项目中包含autofac引用。我同意,除了composition根项目外,您不应该在项目中包含autofac。对于该项目,可以参考AutoFac库。