Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.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#中创建的对象存储在哪里?_C#_Asp.net - Fatal编程技术网

在c#中创建的对象存储在哪里?

在c#中创建的对象存储在哪里?,c#,asp.net,C#,Asp.net,假设我创建了一个对象 public UserDetails GetUserDetail(){ UserDetails user=new UserDetails(); user.Name=someFunctionThatReturnsName(); user.BankAccountNumber=someInternalFunctionThatReturnsAccountNumberFromDB(); return user; } 当我在代码隐藏文件中创建这个对象时

假设我创建了一个对象

public UserDetails GetUserDetail(){
    UserDetails user=new UserDetails();
    user.Name=someFunctionThatReturnsName();
    user.BankAccountNumber=someInternalFunctionThatReturnsAccountNumberFromDB();
    return user;
}
当我在代码隐藏文件中创建这个对象时,这些对象究竟存储在哪里? 它们是否存储在客户端?如果是,我可以修改这些值吗? 比如说,如果Facebook将登录用户的详细信息存储在一个对象中,我可以使用控制台或客户端中的其他东西来修改它吗

当100人同时访问一个web应用程序时,如何处理这个问题? 如何创建和适当返回对象


因此,每当我创建/访问对象时,我都会点击服务器?

它们存储在服务器的内存中。简单来说,服务器上的工作线程分配内存。当100人访问站点时,内存中会分配100个对象。一旦这些对象超出范围,它们就会死亡(或者至少它们是垃圾收集的)。

有很多操作系统的可能性。在您提供的示例中,对象存储在服务器端内存中。对于每个单独的用户,在实时请求期间将存储一个对象

如果您声明,它将存储在服务器端内存中,但在appDomain上,我的意思是,一个实例将与网站上的所有用户共享

ASP.NET对象 在asp.net中,还可以将对象存储在中,以及来自asp.net平台的其他对象。我建议你阅读更多关于它们的内容,并根据需要使用它们

根据上下文的不同,您可以存储自定义对象的通用字典,并在单个引用上使用它

值类型与引用类型 我想补充一点,重要的是你要了解一些东西,它们是如何存储的,它们是如何工作的,以及你应该如何保养你的物品。基本上:

  • 引用类型-在堆上
  • 值类型-在堆栈内存上

在服务器端。我们将得到的是使用它们的格式化结果。该对象在内存中创建,并且不存储在任何地方,至少不存储在您提供的函数中。因此,一旦对UserDetails对象的引用消失,对象及其数据也就消失了。因此,每当我创建/访问对象时,我都会进行服务器命中?如果代码在服务器上,则表示您已经命中了服务器。一个请求可以创建许多对象(页面本身就是一个对象)。当我创建更多的对象时(当更多的用户访问它时),它将消耗更多的服务器资源。那么,在cookies中存储东西好吗?依赖,当您需要在另一个访问中恢复一些数据时,cookies是好的。无论如何,它将从cookie中恢复,并存储在要使用的服务器端内存中。