我正在使用 Prism/Unity 编写 WPF 应用程序。
我有我的主要应用程序(带有引导程序)。
我的每个模块都有接口。例如:
MyModuleA实现IMyModuleA
MyModuleB实现IMyModuleB
我想实现松耦合和依赖注入。
所以在我的引导程序中,我想指定我正在加载一个基于接口的库(类型)。这将允许我独立构建模块。
在我的引导程序中,我有以下内容:
protected override void ConfigureModuleCatalog() {
base.ConfigureModuleCatalog();
string path = @"Modules.MyModuleA.dll";
var assembly = Assembly.LoadFrom(path);
var type = assembly.GetType("Modules.MyModuleA.MyModuleA");
ModuleCatalog.AddModule(new ModuleInfo {
ModuleName = type.Name,
ModuleType = type.AssemblyQualifiedName,
Ref = new Uri(path, UriKind.RelativeOrAbsolute).ToString()
});
}
这是最好的方法吗?