2016-09-23 118 views
0

我试图建立一个基于codeplex棱镜统一的应用程序。而且我很难理解如何实现一个非常松散的应用程序。棱镜模块化/类型交换

在我的理解中,模块应该是应用程序的完全独立的工作部分。换句话说,在另一个应用程序内。意味着没有从一个开发项目引用到另一个开发项目。

但是模块间的交换是如何发生的呢?我使用eventaggregator,它工作正常,但我需要在发送和接收模块中都有一个messagetype(提供数据的类)。如果我想在不引用的情况下工作,我不得不复制消息类型。我可以使用第三个模块,它为两个模块提供消息类型,但是如何在不引用第三个模块的情况下使用消息类型?

当我尝试在统一容器中注册messagetype时,仍然收到编译器错误。对我来说很明显,因为模块a在编译时不知道第三个模块,模块b也不知道。

我是否遇到复合应用程序的局限性,还是错过了一个难题?

在此先感谢您的帮助!

回答

0

您不需要为公用数据类创建第三个模块。为这些类创建一个公共项目并在模块之间共享它。 如果您需要注册任何类,请使用Bootstrapper而不是特定的模块。

+0

如果我正确理解你,你说我应该使用从模块到我的framework-dll的通用引用,这是正确的吗? 如果我这样做,并且模块和框架DLL的数量会增加,传统的紧耦合dll方式将不会有任何优势,那么在那里? – Elex

+0

是的,它将紧密耦合,但仅限于共享数据。您也可以使用共享服务来访问公共数据。创建服务的单例实例并将共享数据保存在该类中。 –

+0

嗯,感谢这个想法,但我认为这不是松散耦合应用程序的目的,它只是抵消了从一个地方到另一个地方的紧密耦合。 – Elex