Я пытаюсь собрать пример использования Caliburn Micro на WP7 с Ninject. Все было довольно просто. Тем не менее, я застрял в том, как запустить событие после активации экземпляра Ninject.
Вот метод ActivateInstance в SimpleContainer Caliburn Micro, контейнера IoC, который поставляется с CM для телефона.
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. Я посмотрел на перехват, который мог бы стать маршрутом, но я не думаю, что динамический прокси-сервер и Линфу будет работать на телефоне.
Чтобы уточнить, я не использую SimpleContainer. Выше показано, что делает SimpleContainer, когда активируется экземпляр. У меня есть NinjectBootstrapper и NinjectContainer, который реализует IPhoneContainer. Я не могу понять, как реализовать event Action<object> Activated;
с Ninject.
обновление: .OnActivation()
выглядит как билет.
Kernel.Bind<IMyService>().To<MyService>().InSingletonScope().OnActivation();