Silverlight中利用MEF进行模块注入时注入错误问题分析

先看错误:

撰写保持不变。由于以下错误,更改被拒绝: 撰写生成多个撰写错误,具有 5 个根本原因。下面提供了根本原因。 有关详细信息,请检查 CompositionException.Errors 属性。

1) 导出更改被部件“SLFrameWork.ShellViewModel”的不可重新撰写导入“SLFrameWork.ShellViewModel..ctor (Parameter="_moduleModel", ContractName="SLFrameWork.Web.ServiceProxy.Interface.IModuleModel")”阻止。

......

解决办法:

1、首先查看silverlight项目中引用的Microsoft.Practices.Prism.MefExtensions属性中复制本地是否为false

2、如果在silverlight中建立的类库,并利用this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(SYS_USER).Assembly)); 已将该类库的dll加入到目录中,则需检查对该类库的引用属性是否设置为false;

3、如果使用 Microsoft.Practices.Prism.Modularity.ModuleCatalog.CreateFromXaml(new Uri(ModuleCalog, UriKind.Relative)); 这种方式加载模块则需检查xaml文件中的信息是否与模块信息一致

<Modularity:ModuleInfoGroup Ref="SLFrameWork.Authentication.View.xap" InitializationMode="WhenAvailable">
        <Modularity:ModuleInfo ModuleName="ViewModule" ></Modularity:ModuleInfo>
    </Modularity:ModuleInfoGroup>
[ModuleExport(typeof(ViewModule))]
    public class ViewModule:IModule
    {
....
    }
 
 
原文地址:https://www.cnblogs.com/oldkingsir/p/2397132.html