wpf datagrid未将对象引用_自己搭建WPF开发框架之基础类库介绍

f69a58b36d5068a99a990df3095ab0b7.png

继上篇WPF企业级开发框架搭建指南介绍了在工作中搭建的一个开发框架,其实也就是到处搬运了一些代码而凑成了这么一个架子,自己手动写的代码倒不是很多,时间都花在了整合代码,把程序跑起来的过程中,好了,闲话少叙;另外框架的名字也不好取,遂就以JHRS命名了。

JHRS基础类库

在JHRS这个类库中,主要放置一些和业务无关但又不可缺失的代码,实际上对于每个项目而言,或多或少都有一些需要封装的类,这些类就组成了每个项目的基础的类库。

常见的文件帮助类,JSON序列化反序列化类,上传下载,网络,加密,反射等等这些。

b895c2f261f398ccace7e181f443199d.png

上图只是在当前源码中,已经使用到了的一些封装,包含了JSON,扩展类,分页查询请求,集合,反射等。

例如在JHRS这个基础类库中,扩展了JSON,基础的转换类,如果您要序列化某个对象,直接调用ToJson方法即可,如下代码所示:

object o = new object();
var json = o.ToJson();

将json反序列化为对象就这样调用即可。

json.FromJsonString<object>();

而对于一些数据类型转换的方法,例如 字符串转数字,大家熟知的是调用Convert.ToInt32这个方法,或者 int.TryParse这个方法,您可以在基础类库里面再次封装一下,因为用Convert可能存在转换异常的问题,而int.Tryparse又存在代码繁杂的问题,因为你需要这样写才行。

int result = 0;
int.TryParse("rex3", out result);

即使使用新的语法来写,看起来也不是那么的直观和优雅。那么封装后的统一写法支持泛型,并且不会出现转换错误了。下面的代码就是新的写法:

"34534xd".CastTo<int>();

在进行数据类型转换的时候,可以要求团队成员都统一调用 CastTo泛型方法,可以避免一些不经意而犯下的错误。

这和封装框架的初忠也是一样的,最终的目的是统一,包括代码风格。

36f4e454b5fba4bea55fbe888b6e449b.png

基础类库的引用关系

JHRS基础类库在当前的解决方案中,是不会引用其它项目的,当然第三方组件另说,例如JSON就需要通过nuget引用Newtonsoft.Json;在当前解决方案中如果引用了其它项目,那就失去了基础类库本来的目的了,因为如果引用其它的项目,可能会存在循环引用的问题。

因此从这一点来说,基础类库,不含业务处理,在当前解决方案中不引用其它项目,但可以被其它任何项目引用,这样该类库就已经充当了基础类库的功能了。

写在最后

基础类库并不包含什么业务功能,可以非常方便的写出单元测试来测试每个方法是否符合预期行为。

有些代码都是直接拿的开源的直接剪裁放进去的,您也可以按照这种组织方式整合自己的基础类库。在github上有很多功能更全面的基础类库,可以找找。

好了,关于基础类库的简单介绍和目的已经交待清楚,下一篇将介绍第三方框架选用的一些问题。

  • 开源地址:https://github.com/jhrscom/jhrs
  • 官方博客:https://jhrs.com

本系列相关阅读

  1. WPF企业级开发框架搭建指南(启示录)
  2. JHRS开发框架之基础 类库
  3. JHRS开发框架之第三方框架选型
  4. JHRS开发框架之WPF调用Web API封装
  5. JHRS开发框架之客户端入口项目
  6. JHRS开发框架之各子系统如何整合
  7. JHRS开发框架之怎样设计合理的ViewModel基类
  8. JHRS开发框架之公用组件用户控件的封装
  9. JHRS开发框架之建议遵循的一些建目录文件原则
  10. JHRS开发框架之WPF数据验证
  11. JHRS开发框架之ViewModel相互传参和弹框回传参的解决办法
  12. JHRS开发框架之踩坑记(终章)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值