我正在构建的应用程序有几个(10 多个)[Module]
可执行文件。
我想在[Module]View.xaml
文件中指定类似的内容。
<Window ...
mef:ExportView ExpectingViewModel={x:Type [Module]ViewModel}
>
</Window>
其中mef:ExportView
aMarkupExtension
为 MEF 作曲家准备零件。
目前,...
- 在
[Module]View.xaml.cs
文件中,我用ExportView(typeof([Module]ViewModel))
. (typeof 参数指定了预期的 ViewModel。) - 我还用
[ExportViewModel]
属性标记了我的 ViewModel。 - (这两个属性都派生自 ExportAttribute。)
- 每个可执行文件的应用程序类也继承自一个
ApplicationBase
执行 MEF 组合并结合/链接 View/ViewModel 的类。
现在,我希望能够从中删除所有代码隐藏,[Module]View.xaml.cs
以防止我和我的同事忘记标记代码隐藏文件。
我认为这需要一个自定义的 MarkupExtension。我熟悉 MEF 的基础知识,以及使用元数据创建自定义导出属性。但是,我认为这个解决方案需要从一些MEF 原语派生。