问题标签 [system.reflection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - System.Reflection.Assembly 的空引用异常
我开发了一个用于内部电子邮件报告的库。当我从另一个项目中使用该库时(通过添加引用)。
它NullReferenceException
在下一行给出。
任何想法,为什么大会是空的?
.net - 如何在没有 System.Reflection 的情况下进行反射?即构建自定义反射类?
我知道这是一个相当学术的问题,但我想知道如果没有System.Reflection
.
我想更重要的是,我想知道System.Reflection
班级是如何运作的。是否可以创建自定义类,该类也知道如何加载然后解码程序集以获取元数据等。那将如何完成?
或者 System.Reflection 可能会编译成我们在 C#/.NET 中无法直接访问的 CIL 函数?
c# - Issue on Usage of FieldInfo class in .NET REFLECTION
How come with the following line I cannot reach this collection of the parameter regarding to sqlinsertcommand but I can reach the sqlinsertcommand and its commandtext itself by the following code:
How can I reach that sqlparameter collection via fieldinfo or other related classes in >NET Reflection? Seems rude but any help or even suggestion means a lot to me.
reflection - 通过反射获取 cmdlet 的动态参数
Powershell根据上下文公开了一些参数,“动态参数”。MSDN 页面很好地解释了该机制,但要了解这些必须调用GetDynamicParameters(),它返回一个包含附加参数的类。我需要通过反射获取这些参数,并且(这是它的症结所在)在 ReflectionOnly 上下文中(即,使用 ReflectionOnlyLoadFrom 加载类型)。所以,没有 Assembly.InvokeMember("GetDynamicParameters")。
这可以做到吗?
c# - 从 C# 中的反射程序集访问调用上下文
我有一个用 C# 编写的 Windows 服务,它根据 XML 文件中的变量发送电子邮件,这包括通过所述 XML 文件中提供的连接字符串访问 SQL 或 MySQL 数据库。我还提供了我称之为“自定义字段”的功能,它评估 C# 或 VB.NET 代码,用户也可以将自定义代码的结果放入 XML 文件中,然后可用于生成电子邮件。现在在自定义代码中,我想提供一组帮助函数,用户可以从他们的代码中调用这些函数,这些函数将检索字段的值,然后他们可以根据需要进行操作。
基本上在 XML 中,用户设置对他们想要访问的每个数据库的引用,然后是该数据库中的每个表,然后是该表中的每个字段,每个都被赋予一个基于 '0'(零)的 ID,每个数据库中的 IE 表id 从(零)开始,并且在每个表中,字段再次从“0”(零)开始
在我所说的面包屑中,对特定字段的引用格式如下:
0,2,6(即数据库 ID 0,数据库 ID 0 内的表 ID 2,数据库 ID 0 内的表 ID 2 内的字段 ID 6)
或者
0,3,6(即数据库 ID 0,数据库 ID 0 内的表 ID 3,数据库 ID 0 内的表 ID 3 内的字段 ID 6)
用户可以在他们的自定义代码中调用帮助函数,这些函数将检索一个或多个值,视情况可能是他们在其 XML 文件中引用的任何字段,例如:
正如您在此自定义代码中看到的,有两个字段被引用,其中一个字段面包屑为“0,0,1”(数据库 ID 0,数据库 ID 0 内的表 ID 0,数据库 ID 0 内的表 ID 0 内的字段 ID 1 ) 和两个带有字段面包屑“0,0,2”的字段(数据库 ID 0,数据库 ID 0 内的表 ID 0,数据库 ID 0 内表 ID 0 内的字段 ID 2)
这些面包屑是对 XML 中提供的模式的引用,例如:
本质上,自定义代码将创建一个名为“FullName”的字符串变量,然后检索成员的名字和姓氏,通过“”(空格)字符将它们连接起来,并将结果存储在“FullName”变量中,然后返回结果. 然后可以从消息中调用 customCode,例如“C,0”C=Custom。
现在我的问题来了:
由于数据库字段等的所有处理都是在服务本身内完成的,因此还使用反射从服务内调用自定义代码我如何从帮助程序(MailEngine)类访问服务使用的函数和变量帮助程序(MailEngine)类包含在与服务不同的上下文中的自定义代码中。
例如,如果在 MailEngine 类中我有一个函数如下
我需要做什么才能从这个函数或这个类中的其他函数中调用函数或检索我在服务中拥有的变量。
这是可能的还是我需要重新解析xml文档重新连接到数据库重新收集所有字段值并从那里开始......
我不知道我如何才能真正提出更好的要求,希望您能理解这一点并提出建议。
谢谢你提供的所有帮助。
克里斯
编辑:
c# - 如何加载分布在多个配置文件中的可执行配置?
我有一个名为TechReader
. 它的配置文件是TechReader.exe.config
. 配置的某些部分保存在其他配置文件中。所以我从 exe.config 中创建的配置部分引用该配置文件。
现在我想使用反射加载我的应用程序的整个配置。我使用这样的代码。
TechReaderStarter
类在其输出是 Windows 应用程序而不是库的项目中定义。
当我使用上面的代码时,我得到TargetInvocationException
并且ConfigurationErrorsException
- 方法是否正确?
- 是否会
OpenExeConfiguration
加载通过合并 exe.config 和其他引用的配置文件生成的最终配置? - 我怎样才能实现这些目标?
注意:我想使用这个 Windows 应用程序作为 Windows 服务安装。我正在尝试读取类中的配置ServiceInstaller
(继承的类ServiceInstaller
),以便在服务配置中提到的服务名称等详细信息可用于installutil
. 为此,我必须使用反射来获取服务的确切配置。
silverlight-4.0 - 在 silverlight 4 中获取动态加载的程序集名称
我有一个 Silverlight 4 应用程序,它允许用户上传文件,特别是程序集。在文件上传之前,我想验证他们选择的实际上是一个程序集,我还想获得该程序集的全名。当我尝试使用 Assembly.Load(byte[]) 时出现安全异常,有没有办法在 Silverlight 中验证程序集而不实际加载程序集?也许加载了第三方程序集信息?是否有一种相当简单的方法来检查字节数组中的字节以确定这一点?
更新
以下几乎向我展示了打开程序集并不是检查字节数组的一种相当简单的方法: Common Language Infrastructure
谢谢,马特
c# - 如何在 C# 中缓存反射
您好,我对反射非常熟悉,我已经通过了大量的示例,我知道它是如何工作的以及我们可以将它用于什么目的。但是我没有得到任何缓存反射的例子,我也不知道这是什么意思。不知何故,我必须在我正在做的项目中使用反射缓存。
因此,如果有人能简要解释这个概念并给出一些例子,我将不胜感激,也将不胜感激现有例子的链接。并且还请描述属性的反射以及它的缓存。提前致谢。
问候乌梅尔
c# - 为什么 ICustomAttributeProvider.GetCustomAttributes() 返回 object[] 而不是 Attribute[]?
为什么ICustomAttributeProvider.GetCustomAttributes()
返回object[]
而不是Attribute[]
?
使用 mscorlib 和 System 程序集的实现时是否有任何情况ICustomAttributeProvider
会返回非类型的对象Attribute
?
c# - 其他程序集引用的方法
我正在开发一个影响分析工具。如果我在 myAssembly 中更改一个方法说“myMethod”,我需要获取所有其他引用 myAssembly 的程序集,并通过下面的代码得到它。
但是在这里我怎么知道“myAssembly”的“myMethod”是否被调用/使用?否则,我将获得所有其他引用 myAssembly 的程序集(例如 10 个),但在 10 个中只有 1 个被调用/使用 myMethod 并且会受到影响。
任何帮助将不胜感激