PageBrowseCounter.config (xml文件)
PageBrowseCounterDefination.cs (序列化xml的类文件)
using System;
using System.Xml;
using System.Xml.Serialization;
using System.Collections;

namespace K2WebControls.UserControl.Counter
{

[XmlRoot("PageBrowseCounter"), Serializable]
public class PageBrowseCounterDefination
{
private static XmlSerializer xmlPageBrowseCounterDef = new XmlSerializer( typeof( PageBrowseCounterDefination ) );

所有的属性

PageBrowseCounterDefination() // 构造函数

所有的私有方法


其他类
}
}

下面是调用这个类的一些操作:
GetUserInfo函数(问题就在这个函数中发现)
GetUserInfo() // 读取当前登录用户的相关信息
下面的两个函数被GetUserInfo函数调用
GetCurrentUserInfoByAccount( string account ) // 根据用户的帐号获得用户信息

GetCurrentUserInfoByIP( string account ) // 根据用户的帐号获得用户信息
下面开始描述问题:
当前用户第一次浏览页面的时候,调用的是如下的代码:
调用后发现一个用户的信息被成功的插入了xml文件:
当用户在经过一段时间间隔后重新浏览该网页,执行的是这段代码:
这段代码执行起来没有报错,执行完成以后发现xml文件中该用户的信息并没有更改,我确认这段代码已经被执行了。
<?xml version="1.0" encoding="utf-8"?>
<PageBrowseCounter xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<UserInfoCollection>
<UserInfo>
<Account>李四</Account>
<IP>127.0.0.1</IP>
<LastBrowseTime>2005-12-15T15:10:47.1468792+08:00</LastBrowseTime>
<BrowseCount>1</BrowseCount>
</UserInfo>
</UserInfoCollection>
<PageInfo ViewCount="6" />
</PageBrowseCounter>
<PageBrowseCounter xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<UserInfoCollection>
<UserInfo>
<Account>李四</Account>
<IP>127.0.0.1</IP>
<LastBrowseTime>2005-12-15T15:10:47.1468792+08:00</LastBrowseTime>
<BrowseCount>1</BrowseCount>
</UserInfo>
</UserInfoCollection>
<PageInfo ViewCount="6" />
</PageBrowseCounter>
PageBrowseCounterDefination.cs (序列化xml的类文件)
























下面是调用这个类的一些操作:
GetUserInfo函数(问题就在这个函数中发现)

下面的两个函数被GetUserInfo函数调用



下面开始描述问题:
当前用户第一次浏览页面的时候,调用的是如下的代码:
userinfo = new K2WebControls.UserControl.Counter.PageBrowseCounterDefination.UserInfo();
userinfo.Account = this.CurrentUserAccount;
userinfo.IP = this.CurrentUserIP;
userinfo.BrowseCount++;
userinfo.LastBrowseTime = DateTime.Now;
pbcd.UserInfoCollection.Add( userinfo );
//更新config文件中的信息
pbcd.PageInfo.ViewCount++;
userinfo.Account = this.CurrentUserAccount;
userinfo.IP = this.CurrentUserIP;
userinfo.BrowseCount++;
userinfo.LastBrowseTime = DateTime.Now;
pbcd.UserInfoCollection.Add( userinfo );
//更新config文件中的信息
pbcd.PageInfo.ViewCount++;
调用后发现一个用户的信息被成功的插入了xml文件:
<?xml version="1.0" encoding="utf-8"?>
<PageBrowseCounter xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<UserInfoCollection>
<UserInfo>
<Account>李四</Account>
<IP>127.0.0.1</IP>
<LastBrowseTime>2005-12-15T15:10:47.1468792+08:00</LastBrowseTime>
<BrowseCount>1</BrowseCount>
</UserInfo>
<UserInfo>
<Account>王五</Account>
<IP>127.0.0.1</IP>
<LastBrowseTime>2005-12-15T16:46:40.6590749+08:00</LastBrowseTime>
<BrowseCount>1</BrowseCount>
</UserInfo>
</UserInfoCollection>
<PageInfo ViewCount="7" />
</PageBrowseCounter>
<PageBrowseCounter xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<UserInfoCollection>
<UserInfo>
<Account>李四</Account>
<IP>127.0.0.1</IP>
<LastBrowseTime>2005-12-15T15:10:47.1468792+08:00</LastBrowseTime>
<BrowseCount>1</BrowseCount>
</UserInfo>
<UserInfo>
<Account>王五</Account>
<IP>127.0.0.1</IP>
<LastBrowseTime>2005-12-15T16:46:40.6590749+08:00</LastBrowseTime>
<BrowseCount>1</BrowseCount>
</UserInfo>
</UserInfoCollection>
<PageInfo ViewCount="7" />
</PageBrowseCounter>
当用户在经过一段时间间隔后重新浏览该网页,执行的是这段代码:
//判断用户登录间隔
if( DateTime.Now.Subtract( userinfo.LastBrowseTime ) > new TimeSpan( 0 , 0 , this.IncreseCountInterval , 0 , 0 ) )
{
userinfo.BrowseCount++;
userinfo.LastBrowseTime = DateTime.Now;
//更新config文件中的信息
pbcd.PageInfo.ViewCount++;
}
if( DateTime.Now.Subtract( userinfo.LastBrowseTime ) > new TimeSpan( 0 , 0 , this.IncreseCountInterval , 0 , 0 ) )
{
userinfo.BrowseCount++;
userinfo.LastBrowseTime = DateTime.Now;
//更新config文件中的信息
pbcd.PageInfo.ViewCount++;
}
这段代码执行起来没有报错,执行完成以后发现xml文件中该用户的信息并没有更改,我确认这段代码已经被执行了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架