在asp net mvc中重用一次创建的控制器的实例

时间:2014-11-29 06:51:46

标签: c# asp.net-mvc asp.net-mvc-4

任务非常特别。我们知道asp.net mvc为每个请求创建控制器的新实例。目标是写一个类继承Controller包含一些数据并创建一次然后用于每个请求。例如: 我们有一个班级:

public class UserWorkspaceController : Controller
{
    public SomeDataClass UserData;
    public List<string> AnotherData;

    public ActionResult Index()
    {
        return View();
    }

    /// another methods here
} 

另一件事。我们有这样的事情:

public static class UserWorspacesStorage
{
    public static Dictionary<string,  UserWorkspaceController> storage = new Dictionary<string,  UserWorkspaceController>(); 

public static UserWorkspaceController GetUserWorkspace(string someCookeString)
    {
        UserWorkspaceController requested;
        if (!storage.TryGetValue(someCookeString, out requested))
        {
            requested = new UserWorkspaceController();
            storage.Add(requested);
        }
        return requested;
    }
}

因此。如您所知,我们需要使用一些cookie字符串(键)然后向控制器请求静态类以获取此键。如果在dictionnary中找不到它,它将被创建并放入字典中。在下一个请求中,将从字典中提取控制器。

你可能会问为什么? :) 目标是将“迁移”存在的WinForms应用程序迁移到Web(asp.net mvc)。因此,如果我的想法成为可能,那将很容易解决任务! 感谢。

0 个答案:

没有答案