我在应用程序中有很多ViewModel,其中大部分都是在视图的XAML中声明和引用为静态资源。现在我需要实现ViewModel调用的一些全面的日志记录,并希望使用某种形式的拦截,例如与团结;但似乎我需要替换,即在Unity中包装或继承(“实例”或“类型”)并基本上在代码中强制/动态地创建代理,这似乎排除了在XAML中声明ViewModel类。那么有没有使用拦截和保持声明性ViewModels的解决方法?
答案 0 :(得分:0)
如果在XAML Unity中声明视图模型,则不能控制对象实例化。这意味着容器没有机会用代理/拦截器包装你的虚拟机。
Caliburn Micro提供了View / ViewModelLocator的概念,可以自动连接view和vm。您可以将它与Unity结合使用来创建您的虚拟机。这应该使您能够拦截和跟踪调用。