【发布时间】:2011-12-28 04:07:06
【问题描述】:
我正在尝试将 Caliburn Micro 在 WP7 上与 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();
【问题讨论】:
标签: c# windows-phone-7 silverlight-4.0 caliburn.micro ninject-2