zoukankan      html  css  js  c++  java
  • .NET获取实例化对象的部分属性名称

    前言

    项目中实例化的对象,对象中里面很有很多属性,有些是我们不需要的,有些是我们需要的,例如在下面的示例中:ID,CreateBy等属性在CB_Projects对象中是不需要的,在获取实例化对象属性名称的时候需要把这些属性过滤掉。UpdateProjectRequest是入参实例

    1、定义实例化对象

    using System;
    using System.Collections.Generic;
    
    namespace ServiceMe.Apps.Business.Common.DAL
    {
        
        public partial class CB_Projects
        {
            public int ID { get; set; }
            public string ProjectNumber { get; set; }
            public string CimtasNumber { get; set; }
            public string Root1 { get; set; }
            public string Root2 { get; set; }
            public string Fill1 { get; set; }
            public string Fill2 { get; set; }
            public string Fill3 { get; set; }
            public string Fill4 { get; set; }
            public string Fill5 { get; set; }
            public string Fill6 { get; set; }
            public Nullable<bool> IsDelete { get; set; }
            public string JointNumber { get; set; }
            public string OtherJoint { get; set; }
            public string CreateBy { get; set; }
            public Nullable<System.DateTime> CreateTime { get; set; }
            public string ModifiedBy { get; set; }
            public Nullable<System.DateTime> ModifiedTime { get; set; }
        }
    }
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace ServiceMe.Apps.Business.Common.Models.RequestModel
    {
        /// <summary>
        /// 修改项目请求参数
        /// </summary>
        public class UpdateProjectRequest 
        {
            /// <summary>
            /// 主键ID
            /// </summary>
            public int? ID { get; set; }
    
            /// <summary>
            /// 项目编号
            /// </summary>
            public string ProjectNumber { get; set; }
    
            /// <summary>
            /// 庆达西编号
            /// </summary>
            public string CimtasNumber { get; set; }
    
            /// <summary>
            /// root1
            /// </summary>
            public string Root1 { get; set; }
    
            /// <summary>
            /// Root2
            /// </summary>
            public string Root2 { get; set; }
    
            /// <summary>
            /// Fill1
            /// </summary>
            public string Fill1 { get; set; }
    
            /// <summary>
            /// Fill2
            /// </summary>
            public string Fill2 { get; set; }
    
            /// <summary>
            /// Fill3
            /// </summary>
            public string Fill3 { get; set; }
    
            /// <summary>
            /// Fill4
            /// </summary>
            public string Fill4 { get; set; }
    
            /// <summary>
            /// Fill5
            /// </summary>
            public string Fill5 { get; set; }
    
            /// <summary>
            /// Fill6
            /// </summary>
            public string Fill6 { get; set; }
        }
    }

    2、获取实例化对象的属性名称。

     public static void Main(string[] args, [FromBody]UpdateProjectRequest req)
            {
                CB_Projects cbProjects = new CB_Projects()
                {
                    ProjectNumber = req.ProjectNumber,
                    CimtasNumber = req.CimtasNumber,
                    Root1 = req.Root1,
                    Root2 = req.Root2,
                    Fill1 = req.Fill1,
                    Fill2 = req.Fill2,
                    Fill3 = req.Fill3,
                    Fill4 = req.Fill4,
                    Fill5 = req.Fill5,
                    Fill6 = req.Fill6,
                    ModifiedBy = req.UserAccount,
                    ModifiedTime = DateTime.Now
                };
                PropertyInfo[] propertyInfos = typeof(CB_Projects).GetProperties();
                List<string> nameList = propertyInfos.Where(t => t.GetValue(cbProjects) != null && t.Name.ToUpper() != "ID").Select(t => t.Name).ToList();
                string str = string.Join(",", nameList);
                string[] strArray = str.Split(',');
            }
    

    3、结果。

     

     

  • 相关阅读:
    docker常用命令
    redis常用命令
    Spring boot redis自增编号控制 踩坑
    docker 安装 nginx
    Linux常用命令记录
    leetcode-120. 三角形最小路径和
    leetcode-229.求众数(二)
    leetcode-169.求众数
    冒泡排序学习笔记
    快速排序学习笔记
  • 原文地址:https://www.cnblogs.com/vuenote/p/11170294.html
Copyright © 2011-2022 走看看