【问题标题】:Storing a class object in C# [closed]在 C# 中存储类对象 [关闭]
【发布时间】:2014-03-26 09:25:16
【问题描述】:

我有一个包含一些数据成员和方法的类对象。我想存储此对象以供以后在应用程序中使用。

让我知道会话、缓存等哪种方法在性能方面更好。

Person per1 = new Person();

我想在这里存储per1 对象以供以后在应用程序中使用

【问题讨论】:

  • 应用程序收集并存储用户的个人信息。为了检索,每次调用数据库......我想将它们保存在某种存储类型中,如会话或缓存或其他方法。想要哪一次能提供最好的性能。希望清楚
  • 你需要序列化,然后保存到文件/DB。
  • 说如果我想访问 Person 类的方法,那么我必须先反序列化对象并获取所需的数据,我认为这需要一些时间。如果我错了,请纠正我

标签: c#-4.0 storage


【解决方案1】:

cache 通常用于提高站点性能:减少数据库调用、访问文件系统上的文件、调用外部服务等。

Session 用于存储用户特定的信息,这些信息可以从所有网页访问,并且在用户下次登录时不需要。

参考

what is difference between session, cache and profile in asp.net

Difference between cache and session in real time for Asp.Net

【讨论】:

    【解决方案2】:

    您可以将对象标记为可序列化并存储它,然后对其进行反序列化以再次加载它。

    序列化(必须保存在电脑任意目录)

      XmlSerializer serializer = new XmlSerializer(per1.GetType());
       StreamWriter writer = new StreamWriter(@"D:\Temporary\myfile.xml");
       serializer.Serialize(writer.BaseStream, per1);
    

    反序列化(从那个目录加载)

    XmlSerializer serializer = new XmlSerializer(per1.GetType());
    StreamReader reader = new StreamReader(@"D:\Temporary\myfile.xml");
    object deserialized = serializer.Deserialize(reader.BaseStream);
    city = (Person)deserialized;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多