随笔 - 547  文章 - 213 评论 - 417 阅读 - 107万

  PageBrowseCounter.config (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>


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 ) // 根据用户的帐号获得用户信息 


下面开始描述问题:

当前用户第一次浏览页面的时候,调用的是如下的代码:


                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++;



调用后发现一个用户的信息被成功的插入了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>

当用户在经过一段时间间隔后重新浏览该网页,执行的是这段代码:

                //判断用户登录间隔
                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文件中该用户的信息并没有更改,我确认这段代码已经被执行了。





posted on   今夜太冷  阅读(557)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示