- csharp/
- C# 如何在WPF中为MEF重新组合空目录目录
C# 如何在WPF中为MEF重新组合空目录目录
C# 如何在WPF中为MEF重新组合空目录目录,c#,wpf,prism,mef,C#,Wpf,Prism,Mef,我有一个包含以下步骤的应用程序:
启动应用程序并配置AggregateCatalog
将用户登录到应用程序
将DLL MEF模块下载到名为“模块”的目录中
刷新目录目录--出现问题
下载dll后,我有空目录“Modules”,我尝试加载模块,但没有成功。我调用DirectoryCatalog.Refresh()的第行出现错误
System.ComponentModel.Composition.ChangeRejectedException被删除
unhandled by user code Me
我有一个包含以下步骤的应用程序:
启动应用程序并配置AggregateCatalog
将用户登录到应用程序
将DLL MEF模块下载到名为“模块”的目录中
刷新目录目录--出现问题
下载dll后,我有空目录“Modules”,我尝试加载模块,但没有成功。我调用DirectoryCatalog.Refresh()的第行出现错误
System.ComponentModel.Composition.ChangeRejectedException被删除
unhandled by user code Message=合成保持不变。
由于以下错误,更改被拒绝:错误
作文产生了多个作文错误,有14个根本原因。
下面提供了根本原因。回顾
有关详细信息,请参阅CompositionException.Errors属性
1) 不可重新编译的导入阻止的导出更改
'Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleInitializer..ctor
(Parameter=“downloadedPartCatalogs”,
ContractName=“Microsoft.Practices.Prism.MefExtensions.Modularity.DownloadedPartCatalogCollection”)'
部分地
'Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleInitializer'
2) 不可重新编译的导入阻止的导出更改
'Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager.mefFileModuleTypeLoader
(ContractName=“Microsoft.Practices.Prism.MefExtensions.Modularity.MefFileModuleTypeLoader”)'
部分地
'Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager'
3) 不可重新编译的导入阻止的导出更改
'Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager..ctor
(Parameter=“moduleInitializer”,
ContractName=“Microsoft.Practices.Prism.Modularity.IModuleInitializer”)'
部分地
'Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager'
4) 不可重新编译的导入阻止的导出更改
'Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager.mefFileModuleTypeLoader
(ContractName=“Microsoft.Practices.Prism.MefExtensions.Modularity.MefFileModuleTypeLoader”)'
部分地
'Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager'
5) 不可重新编译的导入阻止的导出更改
'Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager..ctor
(Parameter=“moduleInitializer”,
ContractName=“Microsoft.Practices.Prism.Modularity.IModuleInitializer”)'
部分地
'Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager'
6) 不可重新编译的导入阻止的导出更改
'GXBilling.ViewsModels.ShellViewModel.ModuleManager
(ContractName=“Microsoft.Practices.Prism.Modularity.IModuleManager”)'
在“GXBilling.ViewsModels.ShellViewModel”部分中
7) 找到多个与约束匹配的导出
“((exportDefinition.ContractName==
“Microsoft.Practices.Prism.Regions.RegionaAdapterMappings”)和
(exportDefinition.Metadata.ContainsKey(“ExportTypeIdentity”)和
“Microsoft.Practices.Prism.Regions.RegionAdapterMappings.Equals(exportDefinition.Metadata.get_项(“ExportTypeIdentity”))”)
导致:无法设置导入
'Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefDelayedRegionCreationBehavior..ctor
(Parameter=“regionAdapterMappings”,
ContractName=“Microsoft.Practices.Prism.Regions.RegionAdapterMappings”)'
部分地
“Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefDelayedRegionCreationBehavior”。
要素:
Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefDelayedRegionCreationBehavior..ctor
(Parameter=“regionAdapterMappings”,
ContractName=“Microsoft.Practices.Prism.Regions.RegionAdapterMappings”)
-->Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefDelayedRegionCreationBehavior
-->AssemblyCatalog(Assembly=“Microsoft.Practices.Prism.MefExtensions,Version=4.0.0.0,
文化=中性,PublicKeyToken=31bf3856ad364e35”)
8) 不可重新编译的导入阻止的导出更改
'Microsoft.Practices.Prism.MefExtensions.Regions.MefsElectorRegionaAdapter..ctor
(Parameter=“regionBehaviorFactory”,
ContractName=“Microsoft.Practices.Prism.Regions.IRegionBehaviorFactory”)'
部分地
'Microsoft.Practices.Prism.MefExtensions.Regions.MefSelectorRegionAdapter'
9) 不可重新编译的导入阻止的导出更改
'Microsoft.Practices.Prism.MefExtensions.Regions.MefItemsControlRegionAdapter
(Parameter=“regionBehaviorFactory”,
ContractName=“Microsoft.Practices.Prism.Regions.IRegionBehaviorFactory”)'
部分地
“Microsoft.Practices.Prism.MefExtensions.Regions.MefItemsControlRegionAdapter”
10) 不可重新编译的导入阻止的导出更改
'Microsoft.Practices.Prism.MefExtensions.Regions.MefContentControlRegionAdapter
(Parameter=“regionBehaviorFactory”,
ContractName=“Microsoft.Practices.Prism.Regions.IRegionBehaviorFactory”)'
部分地
'Microsoft.Practices.Prism.MefExtensions.Regions.mefcontentControlRegionaAdapter'
11) 找到多个与约束匹配的导出
“((exportDefinition.ContractName==
“Microsoft.Practices.Prism.Regions.IRegionViewRegistry”)和
(exportDefinition.Metadata.ContainsKey(“ExportTypeIdentity”)和
“Microsoft.Practices.Prism.Regions.IRegionViewRegistry”.Equals(exportDefinition.Metadata.get_项(“ExportTypeIdentity”)))”
导致:无法设置导入
'Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefautopulateregionBehavior..ctor
(Parameter=“regionViewRegistry”,
ContractName=“Microsoft.Practices.Prism.Regions.IRegionViewRegistry”)'
部分地
“Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefautopulateregionBehavior”。
要素:
Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.Mefautopulateregionbeha
[Import]
public ShellViewModel ViewModel
[Import(AllowRecomposition = false)]
public IModuleManager ModuleManager { get; set; }
[Import(typeof(IShell), AllowRecomposition = true)]
public IShell MainShell { get; set; }
[ImportingConstructor]
public ModuleImporting(IRegionManager regionManager)
[ImportMany(typeof(IFoo),AllowRecomposition=true)]
IEnumerable<IFoo> Foos { private get; set; }