我在一个应用程序中有很多 ViewModel,其中大多数在视图的 XAML 中被声明和引用为静态资源。现在我需要实现一些 ViewModel 调用的综合日志记录,并希望使用某种形式的拦截,例如使用 Unity;但似乎我需要替换,即在 Unity 中包装或继承(“实例”或“类型”),并且基本上在代码中命令式/动态地创建代理,这似乎排除了在 XAML 中声明 ViewModel 类。那么有没有使用拦截和保持声明性 ViewModel 的解决方法?
user2066936
问问题
155 次
1 回答
0
如果您在 XAML 中声明您的视图模型,Unity 将无法控制对象实例化。这意味着容器没有机会用代理/拦截器包装你的虚拟机。
Caliburn Micro提供了自动连接视图和虚拟机的 View/ViewModelLocator 的概念。您可以将它与 Unity 结合使用来创建您的虚拟机。这应该使您能够拦截和跟踪调用。
于 2013-02-13T07:48:22.383 回答