如何在.NET 3.5中进行动态对象创建和方法调用

2024-05-13

创建类对象的代码看起来如何:

string myClass = "MyClass";

上面的类型,然后调用

string myMethod = "MyMethod";

在那个物体上?


  • Use Type.GetType(string) http://msdn.microsoft.com/en-us/library/system.type.gettype.aspx获取类型对象。
  • Use Activator.CreateInstance(Type) http://msdn.microsoft.com/en-us/library/system.activator.createinstance.aspx创建一个实例。
  • Use Type.GetMethod(string) http://msdn.microsoft.com/en-us/library/system.type.getmethod.aspx检索方法。
  • Use MethodBase.Invoke(object, object[]) http://msdn.microsoft.com/en-us/library/system.reflection.methodbase.invoke.aspx调用对象的方法

示例,但没有错误检查:

using System;
using System.Reflection;

namespace Foo
{
    class Test
    {
        static void Main()
        {
            Type type = Type.GetType("Foo.MyClass");
            object instance = Activator.CreateInstance(type);
            MethodInfo method = type.GetMethod("MyMethod");
            method.Invoke(instance, null);
        }
    }

    class MyClass
    {
        public void MyMethod()
        {
            Console.WriteLine("In MyClass.MyMethod");
        }
    }
}

每个步骤都需要仔细检查 - 您可能找不到类型,它可能没有无参数构造函数,您可能找不到该方法,您可能使用错误的参数类型调用它。

需要注意的一件事:Type.GetType(string) 需要类型的程序集限定名称,除非它位于当前执行的程序集或 mscorlib 中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在.NET 3.5中进行动态对象创建和方法调用 的相关文章

  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • 如何检测无符号整数溢出?

    I was writing a program in C to find all solutions of ab c where a b and c together use all the digits 0 9 exactly once
  • 图像像素数据如何“扫描”图像像素?

    目标 查找仅包含黑色和透明像素的图像左侧的第一个黑色像素 我拥有的 我知道如何获取像素数据并拥有黑色和透明像素的数组 在这里找到它 https stackoverflow com a 1262893 358480 https stackov
  • 将小数修剪到 2 位 Bigquery

    我当前正在运行一个查询 该查询运行 sum 函数并除以该数字 目前我得到的值例如 0 0904246741698848 和 1 6419814808335567 我希望这些小数被修剪到小数点后 2 个空格 他们的模式是一个浮点数 这是我的代
  • Qt WinRT 应用程序无法访问文件权限被拒绝

    我需要使用 Qt 和 FFMPEG 开发 WinRT 应用程序 我根据指令构建了 WinRT 的 ffmpeghere https github com Microsoft FFmpegInterop我可以将库与我的项目链接起来 现在我需要
  • android Spinner 和数组适配器以编程方式

    我正在尝试使用 ArrayAdapter 以编程方式创建 Spinner 这是在一个闭源 jar 中完成的 作为 Android 库项目的一部分 我没有任何资源访问权限 我想知道如何自定义布局和显示微调器的文本视图 EDIT 目前我正在使用
  • 使用 matplotlib 为水平条形图创建替代 y 轴标签

    这是我刚刚提出的问题的 更清晰的 转发 我的去身份化让人们感到困惑 你好 我是使用 matplotlib pyplot 在 python 中绘图的新手 并花了很多时间在这个网站和其他网站上搜索 并试图弄清楚这一点 但我还没有成功完成我想做的
  • 我应该如何格式化 .dat 文件以便制作 3D 矢量图?

    我正在为大学做这个编程任务 我们必须写一个c 计算 3D 空间中某些线圈的磁场矢量的程序 我已经成功编写了这个程序 并且我认为它运行得很好 不过 我想添加一个特殊的东西 这是我的试卷 所以它必须特别好 我想绘制出向量 我习惯打电话gnupl
  • 如何在 iPad 上使用 HTML5/Javascript 合成音频

    有没有人有工作示例代码 可以在 iPad 上的 Mobile Safari 上使用 HTML5 Javascript 合成 并播放 音频 我在网上找到了一些基于 javascript 的声音合成示例 但它们似乎都只能在 Firefox 中使
  • Mongoose 对 Promise 拒绝处理

    我有点与 NodeJS 中的 Promise 模式作斗争 我正在数据库中查找用户 然后使用用户引用保存新实体 但是当用户不在数据库中时 我应该返回拒绝 但我不确定如何正确执行 有没有办法做得更好 顺便说一句 对不起 咖啡脚本 User fi
  • Python 无服务器函数 Vercel - Next.js

    我发现我可以使用 Python 在内部创建一个无服务器函数Next js https nextjs org docs getting started项目 一旦部署到Vercel https vercel com 它将被转换为无服务器函数 我
  • org.springframework.security.oauth2.common.exceptions.InvalidGrantException:凭据错误

    我正在开发Spring Boot 授权服务器 OAuth 资源服务器 在这个例子中 我可以通过邮递员轻松查询spring microservices oauth 服务器并获取受保护的数据 我创建了客户端来访问邮递员正在执行的数据 但我遇到了
  • Grails 默认包名称

    我是 Grails 的新手 而且非常喜欢它 我想将我的课程放在像这样的包中org company project module model 重复对我来说很痛苦create domain class
  • 如何用X11复制到剪贴板?

    使用 OS X 上的框架 我可以使用以下命令将 PNG 复制到粘贴板 在 C 中 显然我可以将 NSPasteboard 与 Cocoa 一起使用 include
  • 为什么不能将 MYSQL 函数传递到准备好的 PDO 语句中?

    在我看来 以下脚本应该有效 stmt db gt prepare UPDATE table SET status date modified stmt gt execute array 1 NOW 但经过时NOW 进入准备好的声明中 什么也
  • python 2.7.6 if/elif/else 语句中的 isupper 函数

    我需要 str isupper 函数的帮助 我试图在 if elif else 语句中使用它 程序是这样的 String raw input Please enter a string if String 1 isupper print T
  • 如何更改每次旋转的滑动刷新布局的颜色?

    有没有人注意到SwipeRefreshLayout在 Gmail 中 它会在一次加载迭代中为每次旋转更改颜色 有谁知道如何实现它 The 文档 https developer android com reference android su
  • 返回值的复制省略和 noexcept

    我有一个这样的函数模板 template
  • 递归BBCode解析

    我正在尝试解析脚本中的 BBCode 现在 它可以无缝工作 直到我尝试缩进不仅仅是粗体或下划线的 BBCode 例如剧透 网址 字体大小等 然后它就会搞砸 这是我的代码 function parse bbcode text global d
  • 十进制如何工作?

    我查看了 C 中的十进制 但我不能 100 确定它做了什么 有损吗 在C 写作中1 0000000000001f 1 0000000000001f结果是2使用时float double得到你2 0000000000002这是正确的 是否有可
  • 如何在.NET 3.5中进行动态对象创建和方法调用

    创建类对象的代码看起来如何 string myClass MyClass 上面的类型 然后调用 string myMethod MyMethod 在那个物体上 Use Type GetType string http msdn micros