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

       

  • 相关阅读:
    使用JDBC连接MySql时出现:The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration
    Mysql Lost connection to MySQL server at ‘reading initial communication packet', system error: 0
    mysql-基本命令
    C# 监听值的变化
    DataGrid样式
    C# 获取当前日期时间
    C# 中生成随机数
    递归和迭代
    PHP 时间转几分几秒
    PHP 根据整数ID,生成唯一字符串
  • 原文地址:https://www.cnblogs.com/wholeworld/p/8749292.html
Copyright © 2011-2022 走看看