问题标签 [fieldinfo]

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 投票
3 回答
1401 浏览

c# - 如何比较 FieldInfo 的实例值?

从不返回“是”。

编辑:事先知道类型是什么。所以我不能:(bool)field.GetValue(instance1)

0 投票
2 回答
1434 浏览

c# - System.Reflection,如何获取字段和属性位置?

问题:我使用下面的类将 csv 文件序列化为

List<MyCsvFileType>

然后我 List<MyCsvFileType>使用转换为数据表

我的转换为

(下面也列出)。现在的问题是,MyConvertTo 改变了列的位置,这意味着所有属性都排在所有公共变量之后。

这导致的问题是,之后我使用 SqlBulkCopy 将 DataTable 复制到数据库表中。不幸的是,SqlBulkCopy 使用列的索引而不是列名来将数据表自动映射到数据库表。

这意味着我会收到很好的错误消息,因为它试图在浮动区域字段中插入字母数字 AP_FL_CADKey(因为我的数据库表与类具有相同的布局)......

有什么方法可以获取 MyConvertTo 中字段和属性的位置吗?所以我不必更改我的数据库表(很多)或编写我自己的 BulkCopy 实现,因为我也不想手动设置数据表和数据库表之间的映射?

在最坏的情况下,通过按字段偏移量排序应该是可能的......

班级:

我的转换:

0 投票
2 回答
2737 浏览

c# - 来自通用基类中的字段的 C# 反射 GetValue

问题是我们不能获取仅位于具有泛型类型的基类中的字段(非泛型)的值。请参阅下面的代码片段。打电话

将抛出异常消息:不能对 Type.ContainsGenericParameters 为 true 的类型的字段执行后期绑定操作。

我们的设计要求我们在获得任何实际对象的实例之前首先获得 FieldInfo。所以我们不能使用

谢谢

0 投票
1 回答
217 浏览

c# - 如何在 Windows Phone 7 中的对象上设置结构类型的字段

我在 Windows Phone 7 应用程序中的对象上设置字段时遇到问题(我怀疑它与紧凑框架有关,而不是特定于 Windows Phone 7)。我相信这是特定于设置struct类型的值。通常我使用以下内容:

不幸的是SetValueDirect,Windows Phone 7 上不存在,并且简单地使用SetValue不会对目标做任何事情。是否有另一种方法可以struct通过反射在 WP7 上设置字段?

0 投票
2 回答
2656 浏览

c# - 使用 System.Reflection 检索 const 字符串字段列表

我已经创建了一个类(显示其中一个),其中包含我想要迭代的 const 字符串。

上面的代码显示了我的尝试,但即使经过大量试验和错误,我仍然无法正确完成。

我希望将所有列的列表作为 const 集合数组或列表。

0 投票
2 回答
4602 浏览

c# - 具有数组参数和任意元素类型的 C# FieldInfo.SetValue

我正在尝试使用反射设置一个数组字段,如下所示:

该字段具有类型B[]B继承自,并且在编译时不知道 A确切的类型。返回,但里面的真正元素都是's. 是一种库方法,不能更改。BGetElementsInSomeWay()A[]BGetElementsInSomeWay()

我最多能做的就是得到Bwith System.Type type = field.FieldType.GetElementType()。但是我不能将数组转换为所需的类型,例如 someArray as type[]因为[]在声明数组类型之前需要一个确切的类型。或者我在这里错过了什么?System.Type如果在运行时使用变量知道该类型,我可以声明某种类型的数组吗?

以直接方式执行此操作会产生以下错误(这里AisUnityEngine.ComponentBisAbilityResult也可以是其他几十个类之一,都继承自(可能通过长继承链)UnityEngine.Component):

0 投票
1 回答
865 浏览

c# - 如果使用反射的参数名称和字段名称不同,如何检索参数的值?

如果参数名称和字段名称不同,如何检索参数的值?到目前为止,我已经研究了大约 2 天,但无法找到解决方案。任何帮助表示赞赏。我在下面提供了示例代码。

0 投票
2 回答
6939 浏览

c# - 如何查找成员变量是否为只读?

我如何找到是否sum是只读的?对于属性,我可以PropertyInfo.CanWrite查找成员是否具有写访问权限。

0 投票
8 回答
13552 浏览

c# - 有没有办法创建一个委托来获取和设置 FieldInfo 的值?

对于属性GetGetMethodGetSetMethod我可以这样做:

但是我该怎么做FieldInfo呢?

我不是在寻找代表GetValueSetValue(这意味着我每次都会调用反射)

但如果这里有CreateDelegate办法?我的意思是由于 assignments 返回一个 value,我可以将 assignments 视为一种方法吗?如果是这样,有没有一个MethodInfo句柄?换句话说,我如何将MethodInfo设置和从成员字段获取值的权利传递给CreateDelegate方法,以便我得到一个可以直接读取和写入字段的委托?

我可以构建表达式并编译它,但我正在寻找更简单的东西。最后,如果问的问题没有答案,我不介意走表达路线,如下图:

还是我在追求不存在(因为我还没有看到类似的东西)?

0 投票
1 回答
213 浏览

.net - 为什么基类的成员与派生类中的相同成员不同?

这是这个问题的后续:Lambda 表达式没有返回预期的 MemberInfo

s也是MethodInfo如此。

Human我可以理解什么时候是接口,或者什么时候nameHuman抽象/虚拟的,必须有所不同。但是为什么密封类型会如此呢?不正是nameof吗?MannameHuman

澄清:正如乔恩所说,他们ReflectedType的 s 是不同的。ReflectedType在决定接口成员或被覆盖成员的相等性时,在相等性应该派上用场,因为它们是不同的。但我认为不应该考虑决定上述简单案例的平等性。可能是设计团队想要保持一致。只是想知道是什么原理促使框架设计人员ReflectedType在决定跨多个类的同一成员的相等性时考虑属性。