.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、结果。

.NET获取实例化对象的部分属性名称的更多相关文章
- c# 获取某个对象的[公有属性]的名称,类型,值
/// <summary> /// 获取某个对象的[公有属性]的名称,类型,值 /// </summary> /// <typeparam name="T&qu ...
- js遍历对象所有的属性名称和值
/* * 用来遍历指定对象所有的属性名称和值 * obj 需要遍历的对象 * author: Jet Mah * website: http://www.javatang.com/archives/2 ...
- Python+Selenium 自动化实现实例-获取测试对象的Css属性
#coding:utf-8 '''获取测试对象的css属性场景 当你的测试用例纠结细枝末节的时候,你就需要通过判断元素的css属性来验证你的操作是否达到了预期的效果.比如你可以通过判断页面上的标题字号 ...
- 获取当前对象的key的名称
获取当前对象的key的名称(无法获取),只能曲线救国 通过给标签添加class,id, 然后通过对class的遍历,来获取到id(这个id对应数据库的字段,所以对应对象的key) 然后再给 id 赋值 ...
- 遍历JavaScript某个对象所有的属性名称和值
/* * 用来遍历指定对象所有的属性名称和值 * obj 需要遍历的对象 */ function allPrpos(obj) { // 用来保存所有的属性名称和值 var props = " ...
- 对js原型对象、实例化对象及prototype属性的一些见解
什么是原型对象? 请看下面的代码,我们以各种姿势,创建了几个方法! function fn1() { } var fn2 = function () { } var fn3 = new Functio ...
- Python直接改变实例化对象的列表属性的值 导致在flask中接口多次请求报错
错误原理实例如下: class One(): list = [1, 2, 3] @classmethod def get_copy_list(cls): # copy一份list,这样对list的改变 ...
- Python脚本控制的WebDriver 常用操作 <十八> 获取测试对象的css属性
测试用例场景 当你的测试用例纠结细枝末节的时候,你就需要通过判断元素的css属性来验证你的操作是否达到了预期的效果.比如你可以通过判断页面上的标题字号以字体来验证页面的显示是否符合预期.当然,这个是强 ...
- C#获取一个实体类的属性名称、属性值
using System.Reflection; Type t = obj.GetType();//获得该类的Type foreach (PropertyInfo pi in t.GetPropert ...
随机推荐
- Oracle 11G空表无法导出处理
通过exp进行数据导出的时候,如果表的数据为空,则会出现警告,并且表也不会导出,不利于数据恢复. 可以通过以下方法进行解决: 一.使用ALLOCATE EXTENT,可以导出之前已经存在的空表 --查 ...
- jQuery中$符号的作用
jQuery中$符号的作用 1.查找作为jQuery包装器,利用选择器来选择DOM元素(这个也是最强大的功能) 例如:$("table tr:nth-child(even)") 基 ...
- bat弹出确认或取消窗口
需要在bat脚本里面弹出取消/确认框提示,可以用下面的案例: 示例: @echo off setlocal enabledelayedexpansion set Vbscript=Msgbox(&qu ...
- SQL注入:Cookie注入
什么是Cookie Cookie就是代表你身份的一串字符串,网站根据Cookie来识别你是谁,如果你获取了管理员的Cookie,就表示你可以无需密码直接登陆管理员账号. Cookie注入的原理 在动态 ...
- java stream 集合运算
1.对列表进行分组,构建成一个map对象. 键为用户名称,值为用户对象列表. Person p1 = new Person("张三", new BigDecimal("1 ...
- Android开发环境搭建(个人环境非通用)
1.安装andorid studio 2.连接模拟器,AMD处理器为无法使用AVD manager ,所以连接第三方的Genymotion模拟器,设置中安装Genymotion插件,重启即可(Geny ...
- http协议里定义的四种常见数据的post方法
原文 https://blog.csdn.net/charlene0824/article/details/51199292 关于http协议里定义的四种常见数据的post方法,分别是: applic ...
- 几个简单js,普通写法和高逼格写法比较
1. 取数组中的数据,并对空值设置默认值: 常规写法: let arr = [0, 1, null, '', 'abc']; let newArr = []; arr.forEach((item, i ...
- 【oracle】表说明 COMMENT ON的用法
- 微信小程序单向数据流解决
1. 小程序中没有vue中v-model一样的双向数据机制,并且小程序也不像vue那样的进行 实时的数据驱动视图. 小程序页面数据加载完成后再去改变data中的数据页面是 不会有变化的. 2. 解决: ...