1つのイベントを持つインターフェイスIModuleMainServiceを持つ1つのモジュールがあります。
例えば[Export(typeof(IModuleMainService))]
インターフェイスIMainServiceを備えたSHELLがあります。
例えば[Export(typeof(IMainService))]
ModuleMainでインポートしました[Import(typeof(IMainService)]
この場合、アプリケーションは機能していますが、モジュールおよびシェルと通信したいと思います。
Shell.csへのインポートを挿入しようとしています。
[Import]
public IModuleMainService ModuleMainService { get; set; }
しかし、アプリケーションを実行するとエラーが発生します。以下を参照してください。[Import] public IModuleMainService...
成功したアプリケーションをコメントすると。問題はどこにありますか?
ポイントは、SHELLのModuleクラスのConsumイベントです。
System.ComponentModel.Composition警告:1:ComposablePartDefinition'Main.Silverlight.Views.Shell'が拒否されました。構成は変更されません。次のエラーのため、変更は拒否されました。コンポジションで単一のコンポジションエラーが発生しました。根本的な原因を以下に示します。詳細については、CompositionException.Errorsプロパティを確認してください。
1)制約に一致する有効なエクスポートが見つかりませんでした'((exportDefinition.ContractName == "Main.ViewModels.ShellViewModel")AndAlso(exportDefinition.Metadata.ContainsKey( "ExportTypeIdentity")AndAlso "Main.ViewModels.ShellViewModel" .Equals( exportDefinition.Metadata.get_Item( "ExportTypeIdentity"))))'、無効なエクスポートが拒否された可能性があります。
結果:パーツ'Main.Silverlight.Views.Shell'にインポート'Main.Silverlight.Views.Shell.ViewModel(ContractName = "Main.ViewModels.ShellViewModel")'を設定できません。要素:Main.Silverlight.Views.Shell.ViewModel(ContractName = "Main.ViewModels.ShellViewModel")-> Main.Silverlight.Views.Shell-> AssemblyCatalog(Assembly = "Main、Version = 1.0.0.0、Culture =ニュートラル、PublicKeyToken = null ")
タイプ'System.ComponentModel.Composition.ImportCardinalityMismatchException'の最初のチャンスの例外がSystem.ComponentModel.Compositionで発生しました