如何通过接口程序集从另一个模块实例化一个类?

时间:2016-04-27 14:48:16

标签: c# prism

我有两个模块(A和B)和'接口组件',它们保存两个模块的模型类接口。是否可以通过仅使用“接口组件”中该模型类的接口从“模块B”中的“模块A”实例化模型类,因此我可以在模块B中引用“接口组件”,而无需引用'模块A'直接在'模块B'?

 public class ModuleA: IModule
    {
        IUnityContainer container;

        public InputOutputModule(IUnityContainer container)
        {
            this.container = container;
        }
        public void Initialize()
        {
            container.RegisterType<IInputService, ConsoleInputService>();

        }
    }

和App.config:

     <module assemblyFile="ModuleA.dll" moduleType="MainModuleLibrary.ModuleA, MainModuleLibrary, Version=1.0.0.0, Culture = neutral, PublicKeyToken=null" moduleName="ModuleA" >
          <dependencies>
            <dependency moduleName="ModuleB" />
          </dependencies>
        </module>

<module assemblyFile="ModuleB.dll" moduleType="CalcCommandParsingLib.ModuleB, CalcCommandParsingLib, Version=1.0.0.0, Culture = neutral, PublicKeyToken=null" moduleName="ModuleB" />

1 个答案:

答案 0 :(得分:2)

严格来说:不,这是不可能的。您无法实例化界面;你总是只实例化。因此,必须在任何情况下都是对“模块B”的直接或间接,静态或动态引用。

如何实现您想要的目标有多种实用选择。几个例子: