Область Funq в ServiceStack (лучшая практика)

В моем веб-приложении я использую стандартный механизм разрешения зависимостей в AppHost.cs.

public virtual void Configure(Container container){ }

В этом методе я регистрирую все зависимости.

Как я могу получить доступ к экземпляру контейнера из контроллера?

Я нахожу ответ: использование Funq в ServiceStack

Но является ли это лучшей практикой? А как насчет многопоточности? Разве это (AppHostBase.Instance.Container) не блокирующий ресурс?


person user1376723    schedule 07.03.2013    source источник
comment
Funq является потокобезопасным, потому что он зарегистрирован в одном потоке приложения в Configure() и неизменен после этого.   -  person mythz    schedule 07.03.2013


Ответы (1)


Да, я бы придерживался ответов, найденных в разделе использование Funq в ServiceStack.

Лучше избегать многопоточных решений в приложениях asp.net, если вы можете этого избежать. Разрешение ссылок через funq будет очень быстрым. Funq был выбран для ServiceStack из-за его выдающейся производительности.

Если вам действительно нужно использовать многопоточность, тогда вы должны управлять своими блокировками внутри фактических зависимостей, а не вокруг разрешений зависимостей.

person kampsj    schedule 07.03.2013