C# 是否可以在单独的HTTP调用中加载对象并重用所述对象?

C# 是否可以在单独的HTTP调用中加载对象并重用所述对象?,c#,asp.net-mvc,asp.net-web-api,C#,Asp.net Mvc,Asp.net Web Api,因此,我有一个WEB API,例如,我有一个方法: public JSONResult GetUserInfo(string username) { Reddit reddit = new Reddit("bot12345", "12345"); //load reddit and login reddit.GetSubmittedVideos(username); var user = User.Get(username); //rest of the co

因此,我有一个WEB API,例如,我有一个方法:

public JSONResult GetUserInfo(string username)
{
    Reddit reddit = new Reddit("bot12345", "12345"); //load reddit and login
    reddit.GetSubmittedVideos(username);

    var user = User.Get(username);

    //rest of the code here
}
您可以看到,我有一行代码:Reddit Reddit=new Reddit(“bot12345”,“12345”),这行代码花费了将近2秒的时间,因为它需要通过Reddit API登录。因此,每次有人调用
GetUserInfo
方法时,我的代码都会花费2秒钟以上的时间返回结果,因为它需要调用Reddit

我想知道是否可以加载Reddit对象,所以在我的GetUserInfo方法中,我只需要调用
Reddit.GetSubmittedVideos
。但我记得HTTP是无状态的,所以这可能吗

为糟糕的英语道歉。

HTTP是无状态的,但ASP.NET有一个
会话
对象,该对象与一个用户会话隔离,可以存储跨请求持久存在的数据。因此,至少你可以做如下事情:

Reddit reddit = Session["reddit"] as Reddit;
if(reddit == null)
{
    reddit = new Reddit("bot12345", "12345"); //load reddit and login
    Session["reddit"] = reddit;
}
reddit.GetSubmittedVideos(username);

如果相同的
Reddit
对象可用于所有用户会话,那么您可以使用
应用程序
类,而不是使用
会话

您有关于Reddit会话寿命的信息吗?在字典中第一次运行时,您可能会尝试保护所有登录的regddit实例,这些实例将通过应用程序(静态或单例)以用户名作为密钥共享。而且,你更可能需要存储登录时间来刷新连接。你能更具体地说明一下吗?也许你可以发布一些类似代码的东西,这样我就有了主意。Reddit会话寿命应该是永久性的。可以,请等待10分钟。。。看起来斯坦利已经做到了)