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

       

  • 相关阅读:
    PuTTY 私钥'putty/sshdss.c' 多个信息泄露漏洞
    PuTTY DSA签名远程缓冲区溢出漏洞(CVE-2013-4207)
    Apache CloudStack多个跨站脚本漏洞(CVE-2013-2136)
    phpMyAdmin 完整路径泄露漏洞3
    程序员必知的 七 种软件架构模式!
    【扩展知识】数据结构之动态内存管理机制!
    新年新气象,拼多多退出春晚红包合作,由抖音补位!
    【新年第一个程序】三子棋小游戏(C语言数组实现)
    编程开发中你必须了解的内存知识!从分配到使用直至出现Bug!
    C语言小写转大写,小写字母转换成大写字母!
  • 原文地址:https://www.cnblogs.com/wholeworld/p/8749292.html
Copyright © 2011-2022 走看看