📄 absolutetime.cs
字号:
//===============================================================================
// CSDN HeyCache
//===============================================================================
// 修改记录:[按最后修改时间倒排序]
// 2007.06.11 by tangwei
//
// 代码来源:参考于dotnet企业库3.0版
//===============================================================================
using System;
using System.Globalization;
using System.Runtime.Serialization;
using System.Security.Permissions;
using Microsoft.Practices.EnterpriseLibrary.Caching.Properties;
namespace HeyCacher.Components.Expirations
{
/// <summary>
/// 以绝对时间为依赖的过期策略
/// </summary>
[Serializable]
public class AbsoluteTime : ICacheItemExpiration
{
public DateTime AbsoluteExpirationTime
{
get { return absoluteExpirationTime; }
}
private DateTime absoluteExpirationTime;
public AbsoluteTime(){ }
public AbsoluteTime(TimeSpan timeFromNow)
{
innerCreate(DateTime.Now + timeFromNow);
}
public AbsoluteTime(DateTime absoluteTime)
{
innerCreate(absoluteTime);
}
public void Create(params string[] Params)
{
innerCreate(DateTime.Parse(Params[0]));
}
private void innerCreate(DateTime absoluteTime)
{
if (absoluteTime > DateTime.Now)
{
// Convert to UTC in order to compensate for time zones
this.absoluteExpirationTime = absoluteTime.ToUniversalTime();
}
else
{
throw new ArgumentOutOfRangeException("absoluteTime", Resources.ExceptionRangeAbsoluteTime);
}
}
public bool HasExpired()
{
// Convert to UTC in order to compensate for time zones
DateTime nowDateTime = DateTime.Now.ToUniversalTime();
// Check expiration
return nowDateTime.Ticks >= this.absoluteExpirationTime.Ticks;
}
public void Notify()
{
}
public void Initialize(ExpirationItem owningCacheItem)
{
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -