C# 每个HTTP请求一个类的单个实例
为了调试我的ASP.NET应用程序,我创建了一个名为C# 每个HTTP请求一个类的单个实例,c#,asp.net,session,httpwebrequest,singleton,C#,Asp.net,Session,Httpwebrequest,Singleton,为了调试我的ASP.NET应用程序,我创建了一个名为MessageHandling.cs的类。在这一点上,它是一个单例模式,但我希望它是每个请求的一个实例 我的mssqlDb类用诸如“Db connected”、“Data inserted”之类的消息填充MessagesHandling类。处理完apsx页面的所有事件后,事件page\u LoadComplete()中的createFile.apsx.cs读取MessageHandling类。所有错误和消息都将显示给用户 此时,系统将进行调试。
MessageHandling.cs
的类。在这一点上,它是一个单例模式,但我希望它是每个请求的一个实例
我的mssqlDb
类用诸如“Db connected”、“Data inserted”之类的消息填充MessagesHandling
类。处理完apsx页面的所有事件后,事件page\u LoadComplete()
中的createFile.apsx.cs
读取MessageHandling
类。所有错误和消息都将显示给用户
此时,系统将进行调试。此时的问题是,在发送请求后,MessageHandling不会清空,并且错误也会显示在第二个浏览器上,而不会执行任何操作。我还希望能够使用该系统向最终用户显示消息,如:“Blog created”
我的基本问题如下:A类
创建B类
C类
读取B类
单例不起作用,因为它不是每个用户/会话/请求。因此,我需要另一种方法。将其存储在中,这样它将适用于每个请求
HttpContext.Current
是当前请求的HttpContext
对象。它有一个Items
属性,它是从object
到object
的IDictionary
。您可以在其中放入任何您喜欢的内容,它将与当前请求绑定。您可以签入singleton的构造函数以查看会话中是否存在该对象吗?如果没有,请创建它,然后返回它
private Singleton()
{
// do whatever
}
public Singleton GetMySingleton()
{
if(HttpContext.Current.Items["MyCustomSingleton"] == null)
HttpContext.Current.Items["MyCustomSingleton"] = new Singleton();
//
return (Singleton)HttpContext.Current.Items["MyCustomSingleton"];
}
您首先在哪里实例化您的singleton?MSSQLSDB是第一个使用它的。这就是它的发源地。很好,我甚至不知道它的存在。。。每天都在学习新的东西是的,我的错。我没看到那部分