我正在使用一个简单的 ASMX Web 服务,它使用户能够添加评论。对于添加的每条评论,我都会在该行中添加一个时间戳。我遇到的问题是,如果我相隔 1 秒添加两条评论,它们都将具有相同的时间戳。DateTime.Now
我没有在我的代码中使用,而是使用了一个静态类,这样我就可以轻松地编写单元测试。
这是我的Time
课:
public class Time : IDisposable
{
public static DateTime Now;
static Time()
{
ResetToDefault();
}
public static IDisposable Freeze(DateTime dateTimeToFreeze)
{
Now = dateTimeToFreeze;
return new Time();
}
void IDisposable.Dispose()
{
ResetToDefault();
}
private static void ResetToDefault()
{
Now = DateTime.Now;
}
}
我猜这个类是罪魁祸首,因为如果我用所有实例替换所有实例,Time.Now
一切DateTime.Now
都会按预期工作。
是什么导致我的Time
班级在请求当前时间时冻结而不总是刷新?