我们正在Caliburn.Micro上启动一个新的Silverlight项目。我们需要通过Google Analytics(分析)记录每次用户互动。每次发送任何ActionMessage时,是否都可以执行一些代码?

最佳答案

幸运的是,这很容易。用您自己的方法替换ActionMessage.InvokeAction,该方法会进行日志记录,然后调用原始方法。您将需要在Bootstrapper的Configure覆盖中执行此操作。您的代码如下所示:

var originalInvoke = ActionMessage.InvokeAction
ActionMessage.InvokeAction = context => {
    //do logging here using the context
    originalInvoke(context);
}


这里的所有都是它的。从上下文变量中,您可以获取触发调用的MethodInfo,Taget视图模型,View,EventArgs和Source元素。

10-01 22:14