我正试图将WP7上的Caliburn Micro与Ninject结合使用。一切都非常简单。然而,一旦实例被Ninject激活,我一直坚持如何解决事件。拦截Ninject实例激活?
以下是Caliburn Micro的SimpleContainer中的ActivateInstance方法,这是CM为手机提供的IoC容器。
protected virtual object ActivateInstance(Type type, object[] args) {
var instance = args.Length > 0 ? Activator.CreateInstance(type, args) : Activator.CreateInstance(type);
Activated(instance);
return instance;
}
我在Ninject注册我的类型,当它们被激活时,我需要激活Activated事件。我看着拦截,这可能是要走的路线,但我不认为动态代理和Linfu将在手机上工作。
为了澄清更多,我没有使用SimpleContainer,以上是显示SimpleContainer在实例激活时的功能。我有一个NinjectBootstrapper和一个实现IPhoneContainer的NinjectContainer。我无法弄清楚如何使用Ninject实现event Action<object> Activated;
。
更新:.OnActivation()
看起来像机票。
Kernel.Bind<IMyService>().To<MyService>().InSingletonScope().OnActivation();
我正在实施IPhoneContainer。我的问题是,我不知道如何执行事件操作
更新给出了一种在创建对象时获取通知的方式。 – 2011-12-28 05:50:04
更好,谢谢。 – 2011-12-28 05:54:42