微软BUG: 发现VS2010调试模式类似BUG问题 比较有趣!
问题类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace SNS_DCC
{
/// <summary>
/// 单例模式类, 请使用GetInstance 获取该类.
/// </summary>
[Serializable]
public class MongoDBInfo
{
private static MongoDBInfo instance = new MongoDBInfo();
public static int ss = 0;
/// <summary>
/// 禁止创建类
/// </summary>
private MongoDBInfo()
{
}
/// <summary>
/// 获取实例
/// </summary>
/// <returns></returns>
public static MongoDBInfo GetInstance()
{
return instance;
}
private DateTime identificationTime;
private Stack<string> blogsDBNameQueue=new Stack<string>();
/// <summary>
/// 博文数据库名队列
/// </summary>
public Stack<string> BlogsDBNameQueue
{
get
{
GetPrepare();
return this.blogsDBNameQueue;
}
//set
//{
// //GetPrepare();
// //this.blogsDBNameQueue = value;
// //SetBackup();
//}
}
public void GetPrepare()
{
if (!(this.identificationTime != null && DateTime.Compare(this.identificationTime, Convert.ToDateTime("2010-05-05")) > 0))
DeSerializableNow();
}
public static void SetBackup()
{
SerializableNow();
}
/// <summary>
/// 序列化
/// </summary>
public static void SerializableNow()
{
FileStream fileStream = new FileStream("MongoDBInfo.dat", FileMode.Create);
BinaryFormatter b = new BinaryFormatter();
b.Serialize(fileStream, instance);
fileStream.Close();
}
/// <summary>
/// 反序列化
/// </summary>
public static void DeSerializableNow()
{
if (System.IO.File.Exists("MongoDBInfo.dat"))
{
FileStream fileStream = new FileStream("MongoDBInfo.dat", FileMode.Open, FileAccess.Read, FileShare.Read);
BinaryFormatter b = new BinaryFormatter();
instance = b.Deserialize(fileStream) as MongoDBInfo;
fileStream.Close();
instance.identificationTime = DateTime.Now;
}
}
}
}
前台调用:
<%SNS_DCC.MongoDBInfo.GetInstance().BlogsDBNameQueue.Push("456"); %>
必须在程序第一次运行时候有用!
在
get
{
GetPrepare();
return this.blogsDBNameQueue;
}
加一个断点 跑到此处时this 是刚刚new的状态 new MongoDBInfo();
但是如果在每个方法中 加断点 你会发现 再次运行到此处 this 是从MongoDBInfo.dat 中读取的对象.
当然为了区别 是新new的还是读取的值 MongoDBInfo.dat 一定要是存有值得序列化文件
--------------------编程问答-------------------- 细心人啊 --------------------编程问答--------------------
你试过没? 我试了好几次 都是这样的 不知道是不是很环境有关系
环境是 server 2003, VS2010
--------------------编程问答--------------------
你说的Server 2003 环境没试过
学习来了 楼主牛人啊 有发展 --------------------编程问答-------------------- 赚点分 没人来了 --------------------编程问答-------------------- 人来蹭分了。 --------------------编程问答-------------------- 我的环境是WIN7,好像无此现象 --------------------编程问答-------------------- 挺楼主,是个不错的问题,(*^__^*) --------------------编程问答-------------------- 顶起。 --------------------编程问答--------------------
您试过,么? 把代码发我 我看看. --------------------编程问答-------------------- 没看懂,划水了下
补充:.NET技术 , ASP.NET