问题标签 [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.

0 投票
1 回答
95 浏览

c# - 系统反射;生成字段列表(特定类型)

我有一个类,它有大量某种类型的静态字段Foo,比如说。为了简化和缩短代码,我考虑将它们放入一个数组中(当然也就是它们的引用)。

我可以通过简单地明确写出每个字段名称并将它们放入列表/数组中来做到这一点..(即myList.Add(this.A))..但由于我有很多这些字段并且它们有时会改变,我想通过反射来完成这一切..应该是可能的,不是吗?

0 投票
1 回答
1171 浏览

c# - 使用 Reflection 和 ValueInjecter 映射复合对象

也许这个问题,总是在这个论坛上被问到,但我没有找到我需要的那个。我的问题是我有一个像这样的复合类

当我得到客户数据时

并使用反射将其映射到客户类(对象),代码:

当它映射 CompanyName 时,它​​将返回错误“对象引用未设置为对象的实例”。我已经调试过,我知道问题所在,但直到现在,我都无法解决它。

我知道 AutoMapper 或 Dapper,但是当我申请这个案例时,我也遇到了同样的问题。

现在我正在使用 ValueInjecter,根据我的阅读,它可以解决我的问题。但我的 cust.Id 值与 cust.Company.Id 和 cust.Name = "" 和 cust.Company.Name = "" 相同

有什么问题吗?请帮我。

0 投票
1 回答
4234 浏览

c# - C#通过反射设置对象DateTime属性值

我想将对象的所有 DateTime 属性设置为默认日期。但是,如果我尝试通过反射设置值,我会得到异常:“对象与目标类型不匹配。”

我在做/思考一些根本不正确的事情吗?

0 投票
4 回答
3003 浏览

c# - 为什么 Assembly.GetTypes() 需要引用?

我想从我的程序集中获取所有类型,但我没有引用,也不关心它们。查找接口类型与引用有什么关系?我有办法解决这个问题吗?

抛出: FileNotFoundException 无法加载文件或程序集“某些引用的程序集”或其依赖项之一。该系统找不到指定的文件。

0 投票
1 回答
151 浏览

c# - 将运算符“注入”到现有类型中

Scriptsharp 使用 mscorlib 0.7.0.0,它在 int32 上具有隐式运算符 System.Number。我理解它存在的原因,尽管我认为编译器可以以另一种方式处理转换。

现在我不能在使用标准.Net mscorlib 的其他项目(前单元测试)中使用生成的scriptsharp .Dll。> 3.0。

有没有办法通过反射“注入”该运算符?

我之前的问题给我带来了更进一步的错误,但是这个....

0 投票
2 回答
1153 浏览

c# - 如何获得可空值(而不是基础值)通过 FieldInfo.GetValue()?

在一个应用程序中,我有一些代码具有 Nullable<int> 的 FieldInfo,我需要检索可空值(而不是基础值),如下面的示例所示:

我的问题是v总是被分配底层值(在这个示例中是一个int)而不是可为空的(在这个示例中是一个 Nullable<int>)。

PS:实际应用程序在编译时没有可为空的类型,因此无法进行强制转换。

提前感谢您的帮助。

0 投票
2 回答
1624 浏览

c# - 通过反射调用方法会导致 System.MissingMethodException

我正在动态加载程序集并从中调用静态方法。当该方法使用不重要的引用(例如 mscorlib 或 System.Core)时,就会出现问题 - 我得到System.MissingMethodException. 我尝试过浏览已加载程序集的引用程序集并手动将它们全部加载,从而强制将它们加载到 AppDomain 上。我已经检查CurrentDomain.GetAssemblies过,程序集已加载。

参考是第 3 方库,我知道(从CurrentDomain.GetAssemblies)加载了正确的版本。

什么可能导致这个问题?

0 投票
1 回答
976 浏览

.net - 等效于 MethodBase.GetCurrentMethod 的可移植类库

是否存在等效于 MethodBase.GetCurrentMethod 的可移植类库?

我是 PCL 的新手。我正在研究是否可以使用 PCL 来保存一些肯定会在 Silverlight 上使用并可能在其他地方使用的客户端代码。扫描了源代码后,我可以看到对 MethodBase.GetCurrentMethod 的大量调用,这些调用似乎在 PCL 中不存在。

** 编辑 **

我已经从有问题的图书馆中撕下了这个样本。IsNullOrEmpty() 使用的 String.IsNullOrWhiteSpace(String) 似乎不可用,所以那一点是软糖。

0 投票
2 回答
123 浏览

c# - 反射类型适应

我的反射有问题,基本上我需要像这样调用 Class 的方法:

我需要用反射来调用它,因为我从“外部”C#软件接收到这个输入,我需要评估我需要调用的女巫方法。

问题是,作为输入,我有 2 个对象通过“提示命令行”传递,我已将其转换为字节:

因此,当我执行 Refection 时,我看到一个错误“找不到方法 addNumber”,因为没有找到输入中有 2 个字节的方法。我认为它期望 2 Int32 而不是 2 Byte。

我该如何解决?

D.

更新 1:

更新 2: 我无法转换为 Int32,因为我从 EXE 文件中收到此调用:

例子:

解决方案

基本上每个参数都通过,我施放它。之后我动态传递它:

0 投票
2 回答
597 浏览

c# - 使用Reflection获取PropertyInfo,只想看到有mutators的accessor

使用反射我只想检索同时具有 aget和 aset方法的属性,并忽略只有 a的属性get。我想要做的是给用户一个他/她能够改变的变量列表,所以向他们展示只有一个get方法的属性是误导性的。

鉴于下面的这段代码,用户只会被显示Name。或者我可以同时显示他们两个,但显示为灰色,UniqueID以便他们知道他们无法更改它。

背景信息:我使用的是 C# 4.0。