首页 > 编程语言 >C#利用反射创建对象并进行赋值

C#利用反射创建对象并进行赋值

时间:2024-07-02 21:31:56浏览次数:16  
标签:pt C# xxx 创建对象 propertyInfo myObj Type 赋值

Type classType = typeof(ClassName);     // 获取类的type

string path = fullName + "," + assemblyName;//命名空间.类型名,程序集
Type classType = Type.GetType(path);//加载类型
Type classType = Type.GetType("类的完全限定名");   // 也可以根据类的完全限定名得到type

object myObj = Activator.CreateInstance(ClassType); //创建对象

PropertyInfo propertyInfo = classType.GetProperty("属性名称"); //获取到属性 Type pt = propertyInfo.PropertyType; //获取到属性的type
propertyInfo.SetValue(myObj, xxx); //xxx是需要进行赋值的值,类型必须跟此属性一致,否则会报错 propertyInfo.SetValue(myObj, Convert.ChangeType(xxx, pt)); //xxx是需要进行赋值的值,增加了类型转换,如果属性是Nullable,转换时会报错 propertyInfo.SetValue(myObj, propertyInfo.PropertyType.Name.Contains("Nullable") ? Convert.ChangeType(xxx, Nullable.GetUnderlyingType(pt)) : Convert.ChangeType(xxx, pt)); ///xxx是需要进行赋值的值,增加了类型转换和Nullable判断,终极用法

 

标签:pt,C#,xxx,创建对象,propertyInfo,myObj,Type,赋值
From: https://www.cnblogs.com/fireicesion/p/18280570

相关文章

  • cesium 添加 Echarts图层(航线图)
    cesium添加Echarts航线图(下面附有源码)1、实现思路1、在scene上面新增一个canvas画布2、通坐标转换,将经纬度坐标转为屏幕坐标来实现3、将ecarts中每个series数组中元素都加coordinateSystem:‘cesiumEcharts’2、示例代码<!DOCTYPEhtml><htmllang=......
  • 超越所有SOTA达11%!媲美全监督方法 | UC伯克利开源UnSAM
    文章链接:https://arxiv.org/pdf/2406.20081github链接:https://github.com/frank-xwang/UnSAMSAM代表了计算机视觉领域,特别是图像分割领域的重大进步。对于需要详细分析和理解复杂视觉场景(如自动驾驶、医学成像和环境监控)的应用特别有价值。SAM的今天和大家一起学习的......
  • Nginx proxy manager反向代理docker hub
    1.域名解析用作反向代理的域名要提前解析,如果使用外国的DNS域名提供商的话,最好提前一天解析好。2.配置NPM2.1.Details选项卡2.2.SSL选项卡2.3.Advanced选项卡location/{#Dockerhub的官方镜像仓库proxy_passhttps://regis......
  • ssrf+结合redis 写入crontab或者公钥(两种环境)
    REDISredis作为一种数据库其实是会真的将数据写入到内存中的我们利用ssrf请求请求redis实现服务器对自己的公钥或任务计划写入实现无密码登录或反弹bashredis监听所有地址时才能被外部访问否则只能127.0.0.1本地访问而且开启保护模式后会导致目标端口只能本地访问这......
  • QT6 CMake项目配置 (Visual Studio)
    QT6CMake项目配置(VisualStudio)上一节已经编译好了动态和静态的QT库,接下来在CMake中引入。这边主要介绍使用VisualStudio的配置方法测试环境首先使用VS创建一个项目来测试CMake能否正常使用。如果是首次打开VS会有个配置主题的界面,自己选一下就好了首先我们来创建一个C......
  • docker离线安装及私人仓库搭建
    docker离线安装及私人仓库搭建注意文中IPPORT根据实际情况自行调整1.离线部署安装目录结构install#安装文件夹docker-19.03.9.tgz#docker安装文件压缩包docker下载地址docker-compose-linux-x86_64#docker-compose文件docker-compose下载地址daemon.json......
  • C语言打印倒三角形,底边长n作为参数输入,从键盘输入
    打印倒三角形,底边长n作为参数输入,从键盘输入。#include<stdio.h>intmain(intargc,charconst*argv[]){  inti,j,k,l,n;  printf("请输入底边长:\n");  scanf("%d",&n);  while(getchar()!='\n');  printf("输出图形如下:\......
  • 内存管理-13-CMA内存-1-初探
    基于msm-5.4关键词 cma_alloc/cma_release MIGRATE_ISOLATE MIGRATE_CMA一、概述1.CMA简介CMA(ContiguousMemoryAlloctor)主要用于分配大块连续的物理内存。伙伴系统能分配的最大连续物理内存块是2^10,即一个pageblock大小4MB。为了提高内存的使用率,嵌入式平台上一般使用......
  • 李沐动手学深度学习V2-chap_preliminaries
    李沐动手学深度学习V2文章内容说明本文主要是自己学习过程中的随手笔记,需要自取课程参考B站:https://space.bilibili.com/1567748478?spm_id_from=333.788.0.0课件等信息原视频简介中有CSV文件修改读取成张量tensor数据预处理首先(创建一个人工数据集,并存储在CSV(逗号分隔值......
  • docker 常用命令速查
    启动和关闭docker服务servicedockerstartservicedockerstop查看当前所有的dockerimage文件dockerimagels查看当前所有正在运行的dockercontainerdockercontainerls构建dockerimage镜像文件dockerbuild-t<image_name>.将dockerimage文件实例化为dock......