我刚开始接触利用MEF来实现Silverlight的插件式开发。我把所有的插件都做成了dll文件,放在服务器的文件夹里。网上的示例基本上都是利用WebClient的方式动态加载下载,但都只加载一次,我想知道,如何利用WebClient下载多个dll插件,谢谢!
还是自己解决吧
就是用AggregateCatalog类把各个AssemblyCatalog对象装载起来
AssemblyPart part = new AssemblyPart();
Assembly ass = part.Load(e.Result); //加载dll到一个程序集中
AssemblyCatalog cata = new AssemblyCatalog(ass);//取得程序集中的目录
catalog.Catalogs.Add(cata);加载到AggregateCatalog对象
其他的dll也一样处理,
最后 container = new CompositionContainer(catalog);
container.ComposeParts(this);
一直不明白为什么要用到this,后来明白,这就是加载包含了[Import]特性的属性,不知道是否应该这样理解