Свойство приложения доступа ASP.NET MVC из модели

мой global.asax выглядит так

Imports Castle.Windsor
Imports Castle.Windsor.Configuration.Interpreters

Public Class MvcApplication
    Inherits System.Web.HttpApplication
    Implements IContainerAccessor

    Private Shared IoC As IWindsorContainer

    Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}")

        ' MapRoute takes the following parameters, in order:
        ' (1) Route name
        ' (2) URL with parameters
        ' (3) Parameter defaults
        routes.MapRoute( _
            "Default", _
            "{controller}/{action}/{id}", _
            New With {.controller = "Home", .action = "Index", .id = ""} _
        )

    End Sub

    Sub Application_Start()
        RegisterRoutes(RouteTable.Routes)
        IoC = New WindsorContainer(New XmlInterpreter)
    End Sub

    Public ReadOnly Property Container() As Castle.Windsor.IWindsorContainer Implements Castle.Windsor.IContainerAccessor.Container
        Get
            Return IoC
        End Get
    End Property
End Class

Как я могу получить доступ к свойству контейнера из любого класса модели? есть ли класс, который я могу унаследовать, который дает мне свойство «Application», как в представлении, чтобы я мог к этому

IoC = Application.Item ("Контейнер") ...

15.12.2008 16:25:38
1 ОТВЕТ
РЕШЕНИЕ

Возможно, вы не хотите, чтобы объекты вашей модели знали о вашем контейнере IoC.

Но, чтобы ответить на ваш вопрос, вы можете получить к нему следующий доступ:

(С #)

var container = ((IContainerAccessor)MvcApplication).Container;
4
15.12.2008 20:10:33
Я хочу согласиться на 1000%, что вы не хотите, чтобы объекты вашей модели знали о вашем контейнере IOC. Все, что им нужно от этого, должно быть передано им, когда они будут построены.
Paul 1.06.2010 19:35:19