C#动态创建类实例并动态调用指定的函数

C#动态调用DLL中的函数 一般使用方法 [System.Runtime.InteropServices.DllImport("E:\\Project\\DLL\\XXX.dll", EntryPoint = "OpenComm", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)] public static extern int 阅读详情

类定义:

namespace DynamicFuncTest
{
    class TestClass03
    {
        private string sText = "Member string";

        public string TestFunction01()
        {
            return "TestClass03 TestFunction01";
        }

        public string TestFunction02(string sStr)
        {
	    sText = sStr;
            return "TestClass03 TestFunction02" + sText;
        }
    }
}

调用:

        private void Btn_Exectue_ClassBuildInFunc_Click(object sender, EventArgs e)
        {
            if (T_FunctionInClass.Text.Length == 0)
            {
                MessageBox.Show("Pls choice function.");
                return;
            }

            Type type = System.Type.GetType("DynamicFuncTest.TestClass03");
            MethodInfo mi = type.GetMethod(T_FunctionInClass.Text);
            object testClass = Activator.CreateInstance(type);
            //TestClass03 testClass = new TestClass03();                // It is ok too.
            
            /*
             * // Can use below steps to load the dll, then get the type.
             * Assembly assemblyTmp = Assembly.LoadFrom(sFileName);
             * Type type = assemblyTmp.GetType("NameSpace.ClassName");
             * object testClass = assemblyTmp.CreateInstance(type);
             */

            //object[] objParams = null;
            //T_Result_ClassBuildIn.Text = (string)mi.Invoke(testClass, objParams);

            object[] objParams = new object[1];
            objParams[0] = T_Params_InClass.Text;
            T_Result_ClassBuildIn.Text = (string)mi.Invoke(testClass, objParams);
        }

如果类在dll中,则先加载dll。



C#基础教程:动态创建并写入文件 在C#编程中,命名空间是一种组织代码的机制,它可以用来定义类、接口、结构、委托和枚举的逻辑分组。System.IO命名空间是.NET Framework中负责文件系统I/O操作的一个核心命名空间。它提供了一系列用于处理文件、目录和流的类和接口,使得在文件系统级别上的数据读写操作变得简单和高效。System.IO命名空间的主要作用可以概括为以下几点:封装文件系统操作:允许开发者通过面向对象的方式来执行文件、目录的创建、删除、移动和重命名等操作。简化流处理。 阅读详情

相关推荐

C#动态调用DLL并对目标函数传递参数

引用改网友的 https://download.youkuaiyun.com/download/jackeywjf/1521390 看懂后对其改进和中文注释,C#动态调用DLL并对目标函数传递参数

C#动态选择调用某个指定内部函数

C#动态选择调用某个指定内部函数

Python的专栏 2333

C#动态调用类方法

1.动态调用类方法,模拟VB中的CallByName 2.附带了C#和VB的代码 3.主要是一个项目中用到了要调用很多参数和返回值相同的一系列函数,所以 想到了这个方法,不用重复的写方法名,使用循环调用

C# 动态调用方法

此篇将介绍C#如何在运行时动态调用方法。当某些类型是运行时动态确定时,编译时的静态编码是无法解决这些动态对象或类的方法调用的。此篇则给你一把利剑,让动态对象的方法调用成为可能。 1.动态调用dll里的方法 [csharp] view plain copy  print? "font-family:SimSun;font-size:12px;">/

Sayesan的专栏 6210

动态实现接口

运行时动态实现接口,介绍:http://www.cnblogs.com/lemap/archive/2012/10/25/2738523.html

LS-Dyna模态分析实战:从模型构建到结果解读的全流程指南

本文提供了一份详尽的LS-Dyna模态分析实战指南。文章系统讲解了如何利用LS-Dyna内置的隐式求解器进行特征值求解,从模型构建、几何清理、材料与连接设置,到核心的边界条件与隐式求解控制(如*CONTROL_IMPLICIT_EIGENVALUE),最后完成计算并解读频率与振型结果。旨在帮助工程师在熟悉的环境中高效完成结构振动特性分析,为后续动态响应分析奠定基础。

info6的博客 262

c#对象初始化器、自动实现字段

对象初始化器 public int age { get; set; } 从功能上等价于 private int m_age; public int age { get { return m_age; } set { m_age = value; } } 也就是一开始的时候,先偷懒,写成 public int age { get; set; } 项目写到某个阶段了, 要求 age 数值必

yichudu 1709

7-15 估值一亿的AI核心代码

函数封装,含一个字符串中的所有的某个字串全部替换成另一个的函数,还有判断是否独立的函数以上图片来自新浪微博。!

weixin_73529240的博客 601

C#动态创建类实例并调用

C#动态创建类实例并调用

Python的专栏 4062

跨时钟域传输数据——单bit和多bit信号(总结)

总结单bit和多bit信号的跨时钟域传输

qq_42135020的博客 1万+

无线图像传输新突破:深度JSCC算法在低带宽环境下的性能实测

本文深入探讨了基于深度学习的信源信道联合编码(JSCC)算法在低带宽无线图像传输中的突破性表现。通过实测数据对比,深度JSCC在低信噪比环境下展现出卓越的鲁棒性,有效对抗传统方案的“悬崖效应”,实现图像质量的平滑下降,为远程医疗、工业巡检等严苛场景提供了新的解决方案。

weixin_29090089的博客 504

C#如何动态的创建带参数的构造函数的类,将类作为变量动态创建

C#如何动态的创建带参数的构造函数的类,将类作为变量动态创建 本文章,Jemi会教大家如何动态的创建并使用一个类。 1)申明两个类 2)使用Type 和Activator.CreateInstance(type, parameters)动态创建带构造函数的类。 3)使用它 //声明Dog类 public class Dog { string name; int age; ...

jemi_A的博客 2933

MATLAB 论文复现——基于虚拟储能的电动汽车充放电调度策略及激励评价

文章基于虚拟储能聚合体仿真模型优化电动汽车充放电调度,并采用复合权重评价电动汽车的充电激励。根据电动汽车灵活性和系统稳定性衡量其贡献大小,并通过模糊推理系统模拟用户的充电意愿,实现对电动汽车充电的引导和优化。[1]陈朔,胡昊,方慧敏,等.基于虚拟储能的电动汽车充放电调度策略及激励评价[J/OL].系统仿真学报,1-12[2024-07-24].https://doi.org/10.16182/j.issn1004731x.joss.23-1316.基于虚拟储能的电动汽车充放电调度策略及激励评价。

sjr1478的博客 363

[c#美味] 使用反射动态创建实例并调用方法

在.Net 中,程序集(Assembly)中保存了元数据(MetaData)信息,因此就可以通过分析元数据来获取程序集中的内容,比如类,方法,属性等,这大大方便了在运行时去动态创建实例。 MSDN解释如下: 反射提供了封装程序集、模块和类型的对象(Type 类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用...

aohaizhi7722的博客 441

哨兵1号回波数据(L0级)包格式解析与成像参数提取

提取哨兵1号数据包的辅助数据、回波数据、定标数据。matlab代码在文末

3124

别再写XPath改DOM了!用OpenClaw零代码搞定爬虫全流程(抓取+清洗+存储)

免费版的大模型调用次数有限制(每天100次),但企业版是无限的,还能私有化部署;大模型分析DOM结构有时候会慢1-2秒,但比起节省的时间,完全可以接受;自定义Skill的文档还不够完善,但社区很活跃,有问题在Discord里问,很快就能得到回复。但总的来说,OpenClaw真的改变了我写爬虫的方式——以前我是“代码的奴隶”,现在我是“需求的提出者”,把时间花在更有价值的业务逻辑上,而不是重复繁琐的DOM调试上。如果你也在被传统爬虫折磨,强烈建议你试试OpenClaw,相信我,用了就回不去了。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1313

C#动态创建接口的实现实例对象

本文简单介绍如何动态创建接口interface的实现实例对象,包含两个知识点: 1.如何获取接口interface的所有实现实例对象? 2.如何判断实例对象的构造函数是否有参数? 准备工作   首先新建一个名为IAnimal的interface接口对象,并定义一个Cry方法。 namespace DynamicCreate { /// <summary> /// 动物 /// </summary> public interface IAni

摇曳的风筝 1898

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C#动态创建和动态使用程序集、类、方法、字段等

C#动态创建和动态使用程序集、类、方法、字段等 分类: 技术交流 2011-08-15 16:08 1341人阅读 评论(3) 收藏 举报 c#microsoftstringobjectnull语言   首先需要知道动态创建这些类型是使用的一些什么技术呢?其实只要相关动态加载程序集呀,类呀,都是使用反射,那么动态创建也一样使用的是反射,是属于反射的技

MinSen 6663

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C#动态调用C++的DLL

C#动态调用C++的DLL 最近在C#项目中需要使用C++的DLL,研究了下如何调用 一.般调用方式 一般情况通常使用DllImport来调用DLL.但是这个方式的话必须制定DLL的路径,如果想动态指定路径的话这个方式没法实现 二.动态调用 我的想法是这样的,先定义出dll中的函数,然后调用,这样可以把dll的声明声明的全部放到配置文件中 1.加载DLL,然后使用动态创建出Assembly pub...

Ancalimon的诡异地方 652

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# 利用反射动态创建对象

C# 利用反射动态创建对象   在VS.Net中,有很多种方法动态调用对象的构造函数。一是通过Activator类的CreateInstance()方法。这个方法我们在Remoting中也用过。它实际上是在本地或从远程创建对象类型,或获取对现有远程对象的引用。它的方法签名是:public static object CreateInstance(Type);(还有其他重载方法)注意它的

hoganzeng的专栏 593

C# 利用反射动态创建对象[摘录]

C# 利用反射动态创建对象[摘录]0推荐摘自:http://hi.baidu.com/yangyuhang/blog/item/f12ea90e13f214e336d12250.html在VS.Net中,有很多种方法动态调用对象的构造函数。一是通过Activator类的CreateInstance()方法。这个方法我们在Remoting中也用过。它实际上是在

C#,SQL,Castle,Hibernate,MVC,Spring.net 3101

【C#反射-动态创建对象】

上面博客学习了使用反射查看类型的信息,以及使用反射获取特性对象。 下面使用反射来动态创建对象。首先准备一个Test类: public class TestClass { public TestClass() { Console.WriteLine("这是一个无参构造函数"); } public

HilaryHe 1万+

C#程序设计用反射动态创建COM对象

C#中有时需要和COM组件打交道,创建COM对象比较常用的是引入dll文件,但有些不能直接引入,但如果知道COM对象的GUID或ProgID信息,可以用反射动态方式创建COM对象。 操作流程 1.1. 创建JetEngine的COM对象代码实例 JetEngine组件提供对Jet Engine-specific特定功能的控制,例如压缩数据库和刷新缓存中的数据。 动态创建COM对象这种方法,包括使用Type.GetTypeFromCLSID和Type.GetFromProgID两种方法获取COM对象的Ty

weixin_41883890的博客 1160

对象的动态创建和销毁以及对象的复制,赋值

对象的动态创建和销毁以及对象的复制,赋值

一怀明月的博客 1038
上一篇: C#动态创建类实例并调用
下一篇: C#带错误代码的自定义异常
Python
博客等级 码龄26年 1973粉丝 1567原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值