zoukankan      html  css  js  c++  java
  • DDD实战1

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

       

  • 相关阅读:
    甲骨文新BI应用紧盯SAP客户
    HR相关知识
    透过李宁集团看零售行业BI解决案例
    三全食品:信息化建设狂飙突进的六年
    国际主流商业BI产品对比分析
    项目管理的9个知识领域5个项目管理过程组及项目管理的三维约束
    给管理新手的六点建议(转)
    Oracle BI产品线
    怎么上传应用
    android 各种进度条(ProgressBar)
  • 原文地址:https://www.cnblogs.com/wholeworld/p/8749292.html
Copyright © 2011-2022 走看看