我开发了Prism 6 WPF MVVM模块化应用程序。我的应用程序的解决方案包括一个Shell项目和许多Prism模块项目。在我的应用程序中,我必须实现动态源C#代码生成和编译(CodeDom)。我假设在我的应用程序解决方案中从任何Prism模块项目“可见”的一些公共类库(CL项目)中放置代码(构建CodeDOM图并从中编译程序集),以便我可以调用公共方法来构建CodeDOM图和编译来自应用程序中任何Prism模块的组件。但是我不知道如何在我的应用程序中从任何Prism模块编译可以访问的程序集(即每个prism模块必须能够调用从CodeDOM图编译的程序集)。我假设CodeDOM图将作为类库编译为程序集(GenerateExecutable属性设置为false)。我希望编译的程序集将写入内存而不是磁盘(CompilerParameters.GenerateInMemory = true)。 如果我想从我的应用程序中的所有棱镜模块中看到从CodeDOM图编译的汇编,我该怎么办?所有这些模块都可以调用公开的方法和属性?我使用动态源代码C#代码生成起初我以前没有使用它。所以你的帮助将受到高度赞赏。
答案 0 :(得分:0)
棱镜模块可以依赖于其他模块。
使CodeDOM模块成为所有其他模块的依赖项,并共享服务接口/事件,以提供各个模块访问/调用运行时编译的程序集所需的功能。