ASP.NET MVC Как получить доступ к свойству в файле Global.asax из контроллера? - PullRequest
4 голосов
/ 01 апреля 2011

в файле Global.asax, я управляю некоторыми потоками, и - из Контроллера - мне нужно вызвать событие своего потока.Возможно ли иметь доступ к этой теме?

Ответы [ 2 ]

10 голосов
/ 01 апреля 2011

Вы можете использовать состояние приложения для хранения некоторого объекта, который будет использоваться всеми пользователями приложения:

protected void Application_Start()
{
    Application["foo"] = "bar";
    ...
}

и внутри вашего контроллера вы можете получить доступ к этому свойству:

public ActionResult Index()
{
    var foo = HttpContext.Application["foo"] as string;
    ...
}
3 голосов
/ 01 апреля 2011

Вы могли бы, если бы это был любой другой тип объекта, например строка, потому что вам нужно объявить свойство как статическое в Global.asax, чтобы сделать его доступным для остальной части приложения:

public class Application : HttpApplication
{
    // This is the class declared in Global.asax

    // Your route definitions and initializations are also in here

    public static string MyProperty { get; set; }
}

Это будет доступно для остальной части приложения. Вы можете позвонить, выполнив:

public ActionResult MyAction()
{
    var bla = Application.MyProperty;
}

Тем не менее, я не думаю, что вы хотите сделать Thread доступным для остальной части приложения таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...