class ISMESTagOffsetControl
{
//static string _readTagValueMode = BaseParameterFacade.LoadBaseParameterInfo().ReadTagValueMode.ToLower();
//static string _readTagValueTimeOffset = BaseParameterFacade.LoadBaseParameterInfo().ReadTagValueTimeOffset.ToLower(); /// <summary>
/// 读取配置文件,返回读取历史值的类型
/// </summary> public static SampleOption ReadTagValueMode
{
get
{
switch (BaseParameterFacade.LoadBaseParameterInfo().ReadTagValueMode.ToLower())
{
case "after":
return SampleOption.Sample_After; default:
return SampleOption.Sample_Before;
}
}
} /// <summary>
/// 读取配置文件,返回实时数据库取值偏移时间
/// </summary>
public static int TagValueTimeOffset
{
get
{
return Convert.ToInt32(BaseParameterFacade.LoadBaseParameterInfo().ReadTagValueTimeOffset.ToLower()) * 1000;
}
}
}
如上面这段代码。一个实例类中定义了两个静态属性,
这两个静态属性的操作是从xml配置文件中读取应用程序中所需要的一些参数的设置。现在有这么一个情况。比如我第一次运行程序的时候,调用了 ISMESTagOffsetControl.TagValueTimeOffset时,假设它返回的值为5000,然后呢,我就根据这个5000去做一些运算了。
当我第二次再运行的时候,我把xml配置文件中这顶TagValueTimeOffset给设置成8,也就是说我现在调用ISMESTagOffsetControl.TagValueTimeOffset时,应该返回的是8000。可是我测试过很多回。发现调用这个属性ISMESTagOffsetControl.TagValueTimeOffset时,永远只会保留第一次调用的值,再怎么改配置文件都不行。就像是缓存一样?
谁能解释下这种情况,
PS:希望以实际经验说明,不要找MSDN上的解释,或者网络上只是纯语法的定义。
和这个联动一起的代码很多,要贴这个,恐怕大家看代码都要一定时间了
现在的问题就是这个静态属性和实例属性的问题
以及静态字段的问题,也就是我这里注释的两段代码。
//static string _readTagValueMode = BaseParameterFacade.LoadBaseParameterInfo().ReadTagValueMode.ToLower();
//static string _readTagValueTimeOffset = BaseParameterFacade.LoadBaseParameterInfo().ReadTagValueTimeOffset.ToLower();比如说当我第一次调用进这个类时。
//static string _readTagValueMode = BaseParameterFacade.LoadBaseParameterInfo().ReadTagValueMode.ToLower();
//static string _readTagValueTimeOffset = BaseParameterFacade.LoadBaseParameterInfo().ReadTagValueTimeOffset.ToLower();这两个字段的值是否都会生存在应用程序的内存中?
真到应用程序重启?
/// 读取配置文件,返回实时数据库取值偏移时间
/// </summary>
public static int TagValueTimeOffset
{
get
{
return Convert.ToInt32(BaseParameterFacade.LoadBaseParameterInfo().ReadTagValueTimeOffset.ToLower()) * 1000;
}
}调试一下?
BaseParameterFacade
BaseParameterFacade.LoadBaseParameterInfo()
BaseParameterFacade.LoadBaseParameterInfo().ReadTagValueTimeOffset.ToLower()
都分别是什么值?跟一下不就知道怎么回事了?
不懂web,瞎猜+顶贴+路过+围观。
哈,我理解的却是慢,没做过web项目,基本的都不知道。哈。等asp.net的朋友看吧。