首页 > 编程语言 >c#反射的使用

c#反射的使用

时间:2023-05-09 16:15:31浏览次数:25  
标签:反射 return string c# CreateInstance 实例 使用 类型 assemblyName

 

以下是使用反射创建实例的两种方法

    /// <summary>
    /// 创建对象实例
    /// </summary>
    /// <typeparam name="T">要创建对象的类型</typeparam>
    /// <param name="assemblyName">类型所在程序集名称</param>
    /// <param name="nameSpace">类型所在命名空间</param>
    /// <param name="className">类型名</param>
    /// <returns></returns>
    public static T CreateInstance<T>(string assemblyName, string nameSpace, string className)
    {
        try
        {
            string fullName = nameSpace + "." + className;//命名空间.类型名
            //此为第一种写法
            object ect = Assembly.Load(assemblyName).CreateInstance(fullName);//加载程序集,创建程序集里面的 命名空间.类型名 实例
            return (T)ect;//类型转换并返回

            //下面是第二种写法
            //string path = fullName + "," + assemblyName;//命名空间.类型名,程序集
            //Type o = Type.GetType(path);//加载类型
            //object obj = Activator.CreateInstance(o, true);//根据类型创建实例
            //return (T)obj;//类型转换并返回
        }
        catch
        {
            //发生异常,返回类型的默认值
            return default(T);
        }
    }

  

标签:反射,return,string,c#,CreateInstance,实例,使用,类型,assemblyName
From: https://www.cnblogs.com/zengxiaowei/p/17385391.html

相关文章

  • Drone CI For Github
    记录Drone标准.drone.yml文件version:"3.7"services:nginx:image:nginx:alpinecontainer_name:drone_nginxports:-"80:80"restart:alwaysnetworks:-dronenetmysql:image:mysql:5.7restart:......
  • css中rem,em
    名词解释,rem是使用的重点1.rem的定义理解:通过设置根元素<html>的font-size的大小,来控制整个html文档内的字体大小、元素宽高、内外边距等,2.rem(fontsizeoftherootelement)是指相对于根元素的字体大小的单位。em(fontsizeoftheelement)是指相对于父元素的字体大小的......
  • 单相锁相环。 在simulink中采用C语言实现锁相环,不是matlab编程语
    单相锁相环。在simulink中采用C语言实现锁相环,不是matlab编程语言ifend、forend,而是C语言,与DSP和32编程中的语言一样,整个仿真没有一个模块,只有C需要写的锁相环函数,程序的运行频率和实际的开关频率一致。仿真结果如图所示,基于双二阶广义积分器的锁相环成功锁得电网相位。且在初......
  • 【工具类】可重用的CountDownLatch
    欢迎review代码,指出错误importjava.util.concurrent.CountDownLatch;importjava.util.concurrent.TimeUnit;importjava.util.concurrent.atomic.AtomicLong;importjava.util.concurrent.locks.AbstractQueuedSynchronizer;/***可重用的CountDownLatch*增加reset......
  • Customising claims transformation in ASP.NET Core Identity
    I’vebeentestingoutthenewversionofASP.NETIdentityandhadtheneedtoincludeadditionalclaimsinthe ClaimIdentity generatedwhenauserisauthenticated.TransformingClaimsIdentityASP.NETCoresupportsClaimsTransformationoutofthebox.J......
  • php:7-cli-apline安装mysql redis mongo扩展模块
    apkadd--no-cachebuild-dependenciesbuild-baseopenssl-devautoconfg++libtoolmakecurl-devlibxml2-devlinux-headersdocker-php-ext-install-j2mysqlidocker-php-ext-installpdo_mysqlpeclinstallmongodb-1.2.2echo"extension=mongodb.so"......
  • PWM整流器。 整个仿真采用simulink嵌C语言实现,不是matlab编程
    PWM整流器。整个仿真采用simulink嵌C语言实现,不是matlab编程语言ifend、forend,而是C语言,与DSP和32编程中的语言一样,整个仿真没有一个模块,只有C语言写的程序,程序的运行频率和实际的开关频率一致。包括基于双二阶广义积分器的锁相环、双闭环前馈解耦、SVPWM都是用C语言写的,代码可......
  • 关于若依AsyncFactory的一些思考,记录一下
    类比观星台项目业务:字段数据量都比较大,但需要都保存,但计算只需要其中三列数据,因此需要纵向分表第一步:导入大批量数据,利用loaddata先导入数据第二部:导入成功后,通过单独线程将导入数据纵向分表,添加线程通过后台直接将数据二次入库若依操作日志入库如下:/***操作日志记......
  • C# 超大文件上传和断点续传的实现
    ​ IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头。 一. 两个必要响应头Accept-Ranges、ETag        客户端每次提交下载请求时,服务端都要添加这两个响应头,以保证客户端和服务端将此下载识别为可以断点续......
  • OceanBase表分组
    创建表分组创建表分组mysql>createtablegroupmy_grouppartitionbyhashpartitions6;QueryOK,0rowsaffected(2.33sec)查看表分组:可以看到该表分组属于哪个数据库、表分组中包含哪些表信息mysql>showtablegroupswheretablegroup_name='my_group';+----------......