私が構築しているアプリケーションには、いくつか (10 以上) の[Module]
実行可能ファイルがあります。
このようなものをファイルに指定したいと思い[Module]View.xaml
ます。
<Window ...
mef:ExportView ExpectingViewModel={x:Type [Module]ViewModel}
>
</Window>
ここmef:ExportView
でMarkupExtension
、MEF コンポーザーのパーツを準備する です。
現在、...
- ファイル内で、View を.xml内の属性
[Module]View.xaml.cs
でマークします。ExportView(typeof([Module]ViewModel))
(typeof パラメータは、予期される ViewModel を指定します。) - また、ViewModel に
[ExportViewModel]
属性を付けます。 - (どちらの属性も ExportAttribute から派生します。)
- 各実行可能ファイルの Application クラスも
ApplicationBase
、MEF 構成を行い、View/ViewModel を結合/リンクするクラスから継承します。
ここで、すべての分離コードを から削除して[Module]View.xaml.cs
、自分自身と同僚が分離コード ファイルのマークアップを忘れないようにしたいと考えています。
これにはカスタム MarkupExtension が必要になると思います。MEF の基本と、メタデータを使用したカスタム エクスポート属性の作成に精通しています。ただし、この解決策には、いくつかのMEF プリミティブから派生する必要があると思います。