Контейнер Enterprise Library автоматически создается при первом обращении к нему, если он не был явно инициализирован заранее.
Экземпляр EnterpriseLibrary.Current предназначен для конструкций, которые в противном случае не захотят или не заботятся о контейнере,и просто хочу получить объекты Entlib.Если вы уже используете DI-контейнер (я предполагаю Unity, поскольку вы этого не говорите), то быстрее и проще получить ваши объекты Entlib непосредственно из контейнера, который вы уже используете.
С Unityвсе, что вам нужно сделать, это когда вы создаете контейнер, выполните:
container.AddNewExtension<EnterpriseLibraryCoreExtension>();
и загрузите конфигурацию entlib в контейнер.Оттуда вы можете разрешить объекты Entlib как зависимости так же, как и любые другие зависимости.Таким образом, для приведенного выше кода вы можете получить LogWriter, просто установив параметр конструктора типа LogWriter на своем контроллере.
Я бы не рекомендовал использовать EnterpriseLibraryContainer для всех ваших потребностей IOC в приложении MVC;Я бы сказал, вместо этого используйте явный контейнер, которым вы управляете.