ASP.NET MVC как получить доступ к свойству в глобальной сети.файл asax с контроллера?


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

2 4

2 ответа:

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

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

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

public ActionResult Index()
{
    var foo = HttpContext.Application["foo"] as string;
    ...
}

Вы могли бы, если бы это был любой другой тип объекта, например строка, потому что вам нужно объявить свойство как статическое в 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 доступным для остальной части приложения таким образом.