2014-02-13 2 views
1

Я пытаюсь использовать Autofac OnActivated создать классAutofac OnActivated не работает/вызова

Вдоль линий

builder.Register(c => new MyThing(c.Resolve<MyOtherThingDependancy>())) 
    .As<IMyThing>() 
    .SingleInstance() 
    .OnActivated(c=> new MyOtherThing(c.Instance)); // i only need this to be instantiated once 

MyOtherThing имеет CTOR как:

public MyOtherThing(IMyThing myThing) 

Однако , это не сжигание

MyOtherThing не получает экземпляр

Что я делаю неправильно?

ответ

4

Я не знаю, почему ваша OnActivated не происходит, но вы могли бы сделать это вместо:

builder.Register(c => new MyThing(c.Resolve<MyOtherThingDependancy>())) 
    .As<IMyThing>() 
    .SingleInstance() 

builder.RegisterType<MyOtherThing>().AutoActivate(); 

Я думаю, с помощью AutoActivate имеет четкое намерение, то ваш стиль.

+1

Мне не было известно о AutoActivate .... Я не читал документы на нем, но уже согласен, у меня есть четкое намерение! – Alex

Смежные вопросы