1.创建空白解决方案
2.创建Infrastructure解决方案文件夹
3.在Infrastructure解决方案文件夹下面 添加一个新的项目
这个项目是 .net core的类库项目,取名Util,asp.net core的配置文件的信息是经常使用的信息,所以要建一个关于其配置文件读写的类 AppSetting.cs
和asp.net不同 core的配置文件是json,前者是config的xml文件。读写webapi的json文件的key对应的value 需要引入一个IConfigurationSection类型,这个类型需要引入Nuget包Microsoft.Extension.Configuration。在这个类中封装一个读json的方法,代码如下:
using Microsoft.Extensions.Configuration; namespace Util { public class AppSetting { //之所以搜使用静态类,是因为这是一个工具类 public static IConfigurationSection appsections = null; public static void SetAppSetting(IConfigurationSection section) { appsections = section; } /// <summary> /// 根据key从配置文件中读取key对应的value /// </summary> /// <param name="key"></param> /// <returns></returns> public static string GetAppSetting(string key) { string str = ""; if (appsections.GetSection(key) != null) { str = appsections.GetSection(key).Value; } return str; } } }
4 在返回数据给webapi的时候,应该封装一个专门的数据类型给webapi,为此新建一个ResultEntity类ResultEntity.cs,代码如下:
namespace Util { /// <summary> /// 返回给webapi使用的数据实体 /// </summary> /// <typeparam name="T">视图模型的类型</typeparam> public class ResultEntity<T> { public bool IsSuccess { get; set; } //附带信息 public string Msg { get; set; } public T Data { get; set; } public int ErrorCode { get; set; } /// <summary> /// 如果T是一个List集合 这里可以存数据的条数 /// </summary> public int count { get; set; } } }
封装一个应用服务基类,这个基类提供返回上面ResultEntity类型数据的方法,使得继承了上面基类的应用服务 统一返回ResultEntity给webapi
using System; namespace Util { /// <summary> /// 所有应用服务的积基类 /// </summary> public class BaseAppSrv { /// <summary> /// 所有应用服务的基类都要返回数据给webapi 这里做一个封装 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="vobj"></param> /// <param name="msg"></param> /// <param name="errorcode"></param> /// <returns></returns> protected ResultEntity<T> GetResultEntity<T>(T vobj,string msg="未成功获取到对象",int errorcode=0) { ResultEntity<T> resultEntity = new ResultEntity<T>(); var issuccess = true; if (vobj is int&& Convert.ToUInt32(vobj)<0) { issuccess = false; } else if(vobj is bool&& !Convert.ToBoolean(vobj)) { issuccess = false; } else if(vobj is string && string.IsNullOrEmpty(Convert.ToString(vobj))) { issuccess = false; } if (issuccess==false) { resultEntity.Msg = msg; resultEntity.ErrorCode = 200; } resultEntity.IsSuccess = issuccess; resultEntity.Data = vobj; return resultEntity; } } }