Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 每个HTTP请求一个类的单个实例_C#_Asp.net_Session_Httpwebrequest_Singleton - Fatal编程技术网

C# 每个HTTP请求一个类的单个实例

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类。所有错误和消息都将显示给用户 此时,系统将进行调试。

为了调试我的ASP.NET应用程序,我创建了一个名为
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是第一个使用它的。这就是它的发源地。很好,我甚至不知道它的存在。。。每天都在学习新的东西是的,我的错。我没看到那部分