设为首页 加入收藏

TOP

项目架构开发:异常处理及日志(三)
2019-09-17 17:36:10 】 浏览:48
Tags:项目 架构 开发 异常 处理 日志
lt;/summary>
7 public string LoginName { get; set; } 8 9 /// <summary>登录密码</summary> 10 public string Password { get; set; } 11 12 /// <summary>是否有效</summary> 13 public short? IsEnabled { get; set; } 14 15 /// <summary>所属角色</summary> 16 public IEnumerable<Guid> Roles { get; set; } 17 }

这种是取不到值的(橙色部分),因为args.Arguments返回的是object数组,取不到实体属性

这是很不好的一点,不过可以克服的,我的方法就是重写ToString(),如下

 1     public class LoginUserCURequest
 2     {
 3         /// <summary>Id</summary>    
 4         public Guid Id { get; set; }
 5 
 6         /// <summary>登录账户名</summary>    
 7         public string LoginName { get; set; }
 8 
 9         /// <summary>登录密码</summary>    
10         public string Password { get; set; }
11 
12         /// <summary>是否有效</summary>    
13         public short? IsEnabled { get; set; }
14 
15         /// <summary>所属角色</summary>    
16         public IEnumerable<Guid> Roles { get; set; }
17 
18         public override string ToString()
19         {
20             return string.Format("Id:{0},LoginName:{1},Password:{2},IsEnabled:{3}", 
21                 Id.ToString(), LoginName, Password, IsEnabled.ToString());
22         }
23     }

这样就没问题了,还能按照自己的格式输出;

 

3.3  使用异常拦截器

拦截器我们已经搞好了,直接写在方法或类名上边就可以,如下图

然后我们再Add方法里边触发一个异常

我们测试一下,还是之前的LoginUserApplicationTest.cs,这里再贴一次

 1         [TestMethod]
 2         public void Add()
 3         {
 4             var list = new List<Guid>();
 5             list.Add(Guid.NewGuid());
 6             list.Add(Guid.NewGuid());
 7 
 8             var flag = this.loginUserApplication.Add(new LoginUserCURequest()
 9             {
10                 Id = Guid.NewGuid(),
11                 LoginName = "lanxiaoke-" + Guid.NewGuid().ToString(),
12                 Password = "123456",
13                 IsEnabled = 1,
14                 Roles = list
15             });
16 
17             Assert.AreEqual(true, flag);
18         }

测试未通过

看看数据库有没有记录到异常

 

看到没?有了这些日志信息,什么问题都无法遁形。。

 

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇高并发下海量容器案例一 下一篇Spring MVC + Security 4 初体验..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目