reflection相关内容

JVM 什么时候加载类?

假设我有以下课程: 类调用者{公共无效createSomething(){新的东西();}} 将执行此行: static void main() {类clazz = Caller.class;} 导致 JVM 加载类 Something 还是类加载延迟到方法 createSomething() 被调用? 解决方案 仅当您需要有关该类的信息时才加载该类. 公共类Somethi ..
发布时间:2022-01-16 12:21:48 Java开发

什么是invokedynamic,我该如何使用它?

我不断听到有关添加到 JVM 的所有新酷特性,其中一个很酷的特性是 invokedynamic.我想知道它是什么以及它如何使 Java 中的反射式编程更容易或更好? 解决方案 这是一个新的 JVM 指令,它允许编译器生成调用具有比以前更宽松的规范的方法的代码——如果你知道“这里是一篇非常精彩的博文,提供了很多细节.p> ..
发布时间:2022-01-16 12:10:57 Java开发

检查 .net 核心中动态加载的库的依赖关系

我正在尝试创建使用来自外部 dll-s 的某些功能的插件.因为我不知道会使用哪个插件,所以我想动态加载: 主 asp.net 核心项目,它使用反射动态加载诸如 mailservice.dll 之类的插件. mailservice.dll 库,它公开了 CheckMail() 方法(我使用 MimeKit 作为 IMAP 助手). 一切正常,但是当我调用 CheckMail() 方 ..
发布时间:2022-01-15 23:15:37 C#/.NET

如何从我的 .NET 解决方案构建“依赖关系树图"

我可以从 Visual Studio .NET 项目中轻松查看单个项目引用的项目和 dll. 是否有任何应用程序或使用反射可以为我构建完整的依赖关系树,我可以使用它来绘制依赖关系的图形图表? 解决方案 除了NDepend,你也可以试试这个插件Reflector 用于显示程序集依赖图. ..
发布时间:2022-01-15 22:58:39 C#/.NET

在动态事件处理程序中引用“this"

在我的“myClass"类中,我使用 Reflection.Emit 为 myClass 类的成员之一动态编写事件处理程序. 我已经成功完成了. 现在,我想修改事件处理程序以调用 myClass 类中的实例方法之一. 但是,我无法弄清楚如何使用 Reflection.Emit 将对“this"的引用推送到 MSIL 堆栈.在事件处理程序中,Ldarg_0 不是对“this"的引用 ..
发布时间:2022-01-15 12:14:03 C#/.NET

如何使用反射将事件处理程序附加到事件?

我知道 EventInfo.AddEventHandler(...) 方法,该方法可用于将处理程序附加到事件.但是,如果我什至无法定义事件处理程序的正确签名,例如,我什至没有对处理程序预期的事件参数的引用,该怎么办? 我会用正确的代码解释问题. //解决方案中所有可用的场景,零反射场景. 内部类 SendCommentsManager{公共无效自定义(IRFQWindowManage ..
发布时间:2022-01-15 12:02:29 C#/.NET

获取 Matlab 处理事件或属性

问题 我如何获取双精度类型句柄的事件和属性列表,如 figure、axes? 问题 Matlab 文档要求您使用 WindowButtonDownFcn、WindowButtonMotionFcn 等来收听界面上发生的任何事情.问题是这个属性非常有限,因为 以下事实: 将变量保持在范围内 当 MATLAB 计算函数句柄时,相同的变量在范围与创建函数句柄时一样.(相反, ..
发布时间:2022-01-15 11:47:56 其他开发

使用反射 (DotNET) 查找程序集中的所有命名空间

我有一个程序集(作为 ReflectionOnly 加载),我想找到该程序集中的所有命名空间,以便将它们转换为自动生成的源代码文件的“使用"(VB 中的“导入")语句模板. 理想情况下,我只想将自己限制在顶级命名空间中,所以不要: 使用系统;使用 System.Collections;使用 System.Collections.Generic; 你只会得到: 使用系统; 我注意到 S ..
发布时间:2022-01-14 23:02:10 C#/.NET

使用 Mockito 通过反射来模拟方法

我们正在使用 Mock-Factory 为我们的开发人员提供最舒适的模拟功能,同时尽可能少地了解 mockito 本身. 为此,我们的 Mock-Factory 提供了一种创建模拟的方法,给定类名、方法名(通过正则表达式)和给定的返回值,看起来如下(清理到相关部分对于这个问题): 公开T getMockForMethod(Class clazz, String methodName, ..
发布时间:2022-01-14 13:31:03 Java开发

验证是否调用了所有 getter 方法

我有以下测试,我需要验证是否调用了 Person 类的所有 getter.到目前为止,我已经使用了 mockito 的 verify() 来确保调用每个 getter.有没有办法通过反思来做到这一点?可能会在 Person 类中添加一个新的 getter,但测试会错过它. 公共类 GetterTest {类人{私人字符串名字;私人字符串姓氏;公共字符串 getFirstname() {返回名字; ..
发布时间:2022-01-14 13:18:21 Java开发

将反射与 COM 互操作一起使用

在互操作调用之后,我得到了一个 COM 对象.我知道这个对象将是三个可能的 COM 类(Class1、Class2、Class3)之一,但不知道运行时是哪一个. 对该对象的反射 (interopObject.GetType()) 返回 System.__ComObject 的基本 RCW 包装器. 我需要在对象上设置一些属性 - Text1、Text2、... Text30(实际名称, ..
发布时间:2022-01-14 12:05:32 C#/.NET

使用 COM 对象上的反射调用方法

我有一个 COM 对象的实例......它是这样创建的: Type type = TypeDelegator.GetTypeFromProgID("Broker.Application");对象应用程序 = Activator.CreateInstance(type); 当我尝试调用一个方法时: type.GetMethod("RefreshAll").Invoke(application, ..
发布时间:2022-01-14 11:52:50 C#/.NET

如何获取 COM 对象的类型

我在 Visual Studio 中引用了一个 COM 库,因此它已自动为我创建了相应的 Interop 程序集.我想对这些 com 对象执行 GetType(),但它们总是返回 System.__ComObject.不过,查询它们的接口是可行的: bool isOfType = someComeObject is ISomeComObject;//这有效 但我真正想要的是返回 com 对象的 ..
发布时间:2022-01-14 11:48:57 C#/.NET

如何在没有 Application.Run 的情况下从 VBE 加载项运行宏?

我正在为 VBE 编写一个 COM 插件,其中一项核心功能涉及在单击命令栏按钮时执行现有的 VBA 代码. 代码是用户编写的单元测试代码,位于标准 (.bas) 模块中,如下所示: 选项显式选项专用模块'@TestModule私有断言作为新的 Rubberduck.AssertClass'@测试方法Public Sub TestMethod1() 'TODO: 重命名测试出错时转到测试失败 ..
发布时间:2022-01-14 11:44:49 C#/.NET

使用 IsDefined 而不是 GetCustomAttributes 有什么好处吗

考虑一个程序集包含一个或多个类型的情况,该类型具有自定义属性MyAttribute,并且您需要获取这些类型的列表.使用 IsDefined vs. GetCustomAttributes 除了更紧凑的语法?一个人是否暴露/隐藏了另一个人没有的东西?一个比另一个更有效吗? 以下是演示每种用法的代码示例: 组装组装 = ...var typesWithMyAttributeFromIsDefi ..
发布时间:2022-01-13 18:34:55 C#/.NET

为什么我的 .NET 属性不执行操作?

我创建了一个简单的属性: [AttributeUsage(AttributeTargets.Method)]公共类 InitAttribute : System.Attribute{公共初始化属性(){Console.WriteLine("有效!");}} 我将其应用于一个简单的方法: 静态类Logger{公共静态字符串_severity;公共静态无效初始化(字符串严重性){_severit ..
发布时间:2022-01-13 18:31:24 C#/.NET

类成员的自定义属性

我正在使用自定义属性来定义如何将类的成员映射到属性以作为表单发布(支付网关)发布.我的自定义属性工作得很好,并且能够通过“名称"获取属性,但想通过成员本身获取属性. 例如: getFieldName("name"); 对 getFieldName(obj.Name); 计划是编写一个方法,将具有成员的类序列化为可发布的字符串. 这是我此时的测试代码,其中 ret 是一个字符串, ..
发布时间:2022-01-13 18:24:19 C#/.NET