当前位置:首页 > Windows程序 > 正文

C#集合篇,在业务背景下(***产品升级管理):依赖注入,变量声明,三元表达

2021-05-25 Windows程序

QQ:1187362408 欢迎技术交流和学习

关于系统产品升级报告管理,业务需求:

TODO:

1,升级报告管理:依据各县区制定升级报告(关联sAreaCode,给每个地区观看具体升级报告信息)

2,运用的技术:依赖注入,变量声明,三元表达式,常用字符串相关操作方法,ADO.NET,EF机制,T4模板自动生成实体类,ref变量与可null变量巧用,属性实际运用,唯一性验证,url传递中文编码和解码问题

讲解篇:1,服务端aspx,2,服务端后台返回数据(这里采用服务器端程序:aspx.cs)

TODO:

一,讲解篇依据:技术分类进行逐一讲解

二,开源思想:分享和总结技术

一,讲解篇依据:技术分类进行逐一讲解:

1,依赖注入

/*TODO:非功能性辅助需求 * 业务需求: * 升级报告管理:依据各县区制定升级报告(关联sAreaCode,给每个地区观看具体升级报告信息) * 主表:sys_UpdateReport 子表:sys_UpdateReportCustom * 标识:gKey【键值】,sVersionNunber【版本信息关联子表】,sAreaCode【对每一个地区升级】 */ Isys_UpdateReportCustomBLL iBLL = IOCFactory.GetIOCResolve<Isys_UpdateReportCustomBLL>();//依赖注入 版本升级报告业务逻辑层接口 Isys_AreaDAL iAreaDAL = IOCFactory.GetIOCResolve<Isys_AreaDAL>();//依赖注入 地区信息数据层接口
2,变量声明

private string[] sareacodearray = new string[] { };//声明 地区编码【可能是一对数组】 private string sareacode { get; set; }//声明 地区编码 private int sareacodearraylength { get; set; }//声明 地区编码长度 private sys_Area modelArea = new sys_Area();//声明并初始化地区实体,以便获取地区信息
3,三元表达式

<pre name="code" class="csharp">sVNunber = svb == null ? "" : svb.Value; sareanamearray = sareanamearray != "" ? sareanamearray.Substring(0, sareanamearray.Length - 1) : "";//截取,最后一个字符^


4,常用字符串相关操作方法

/// <summary> /// 依据地区编码返回地区名称 /// </summary> /// <param name="sAreaCode">地区编码</param> /// <returns>地区名称(可能是多个)</returns> public string GetsAreaNameBysAreaCode(object sAreaCode) { string sareanamearray = "";//声明 地区名称【可能是一对数组】 if (sAreaCode != null && sAreaCode.ToString() != "") { sareacode = sAreaCode.ToString(); /*if (sareacode.IndexOf('^') == -1) sareacode = sareacode + '^';//当用户输入一个地区编码,忘记给它自定义添加'^'符号时,检索后台添加一个,便于存取数据及页面展示*/ sareacodearray = sareacode.Split('^');//地区编码数组 sareacodearraylength = sareacodearray.Length;//地区编码数组长度 for (int i = 0; i < sareacodearray.Length; i++)//sAreaCode格式实际中为:code1^code2,sareanamearray格式实际中为:name1,name2 { modelArea = iAreaDAL.GetModelByID(sareacodearray[i]);//地区 if (modelArea != null && !string.IsNullOrEmpty(modelArea.sName)) { sareanamearray += modelArea.sName + ",";//地区名称,,以','隔开页面展示 continue; } } sareanamearray = sareanamearray != "" ? sareanamearray.Substring(0, sareanamearray.Length - 1) : "";//截取,最后一个字符^ } return sareanamearray; }

5,ADO.NET

/// <summary> /// 定制需求【依据主表sys_UpdateReport中标识VersionNunber返回List<sys_UpdateReportCustom>】 /// </summary> /// <param name="where">VersionNunber</param> /// <returns>sys_UpdateReportCustom数量</returns> public int? GetCustomList(System.Linq.Expressions.Expression<Func<sys_UpdateReportCustom, bool>> where) { return iDal.GetList(where).ToList().Count; } /// <summary> /// 定制需求【依据主表sys_UpdateReport中标识VersionNunber返回List<sys_UpdateReportCustom>】 /// </summary> /// <param name="where">VersionNunber</param> /// <returns>List<sys_UpdateReportCustom></returns> public List<sys_UpdateReportCustom> GetList(System.Linq.Expressions.Expression<Func<sys_UpdateReportCustom, bool>> where) { return iDal.GetList(where); } public sys_UpdateReportCustom GetModelByID(Guid gkey) { return iDal.GetModelByCondition(P => P.gKey.Equals(gkey)); }

6,EF机制

private Isys_UpdateReportCustomDAL iDal; private IUnitOfWork<BaseFrameworkEntities> uwork; public sys_UpdateReportCustomBLL(IUnitOfWork<BaseFrameworkEntities> uwork, Isys_UpdateReportCustomDAL iDal) { this.iDal = iDal; this.uwork = uwork; this.uwork.LogEvent = new LogEventHandler(Sys_LogBLL.WriteLog); }

7,T4模板自动生成实体类

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/71033.html