NancyFx и TinyIoC предоставляют один экземпляр для модуля

У меня довольно простой вопрос. Я использую Нэнси с формой Windows (проходит через конструктор (авторазрешение)). Если я позволю Нэнси автоматически разрешить каждый модуль, он создаст новый экземпляр формы, а это не то, что я хочу. Я подумал, может быть, я мог бы зарегистрировать свой экземпляр формы в TinyIoC, и тогда он всегда будет использовать только этот экземпляр вместо того, чтобы каждый раз создавать новый. Но оказалось, что это не так просто реализовать, как идея.

заранее спасибо


person peshkatari    schedule 20.04.2013    source источник


Ответы (2)


вы, вероятно, должны сделать это в загрузчике

что-то типа:

public class MyBootstrapper: DefaultNancyBootstrapper
{
    ConfigureApplicationContainer (TinyIoCContainer container)
    {
        //the .AsSingleton() instructs TinyIOC to make only one of those.
        container.Register<IMessageDeliverer>().AsSingleton();
        base.ConfigureApplicationContainer (container);            
    }
}
person albertjan    schedule 21.04.2013

Я решил это, не назначая ссылку на окно конструктору, а зарегистрировав ее с помощью TinyIoC и разрешив ее в конструкторе по умолчанию.

//Registering in form
var container = TinyIoCContainer.Current;
container.Register<IMessageDeliverer>(this);

//Resolving in Module Constructor
var container = TinyIoCContainer.Current;
IMessageDeliverer mdl = container.Resolve<IMessageDeliverer>();
setDeliverer(mdl);
person peshkatari    schedule 20.04.2013