问题标签 [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# - 系统反射;生成字段列表(特定类型)
我有一个类,它有大量某种类型的静态字段Foo
,比如说。为了简化和缩短代码,我考虑将它们放入一个数组中(当然也就是它们的引用)。
我可以通过简单地明确写出每个字段名称并将它们放入列表/数组中来做到这一点..(即myList.Add(this.A)
)..但由于我有很多这些字段并且它们有时会改变,我想通过反射来完成这一切..应该是可能的,不是吗?
c# - 使用 Reflection 和 ValueInjecter 映射复合对象
也许这个问题,总是在这个论坛上被问到,但我没有找到我需要的那个。我的问题是我有一个像这样的复合类
当我得到客户数据时
并使用反射将其映射到客户类(对象),代码:
当它映射 CompanyName 时,它将返回错误“对象引用未设置为对象的实例”。我已经调试过,我知道问题所在,但直到现在,我都无法解决它。
我知道 AutoMapper 或 Dapper,但是当我申请这个案例时,我也遇到了同样的问题。
现在我正在使用 ValueInjecter,根据我的阅读,它可以解决我的问题。但我的 cust.Id 值与 cust.Company.Id 和 cust.Name = "" 和 cust.Company.Name = "" 相同
有什么问题吗?请帮我。
c# - C#通过反射设置对象DateTime属性值
我想将对象的所有 DateTime 属性设置为默认日期。但是,如果我尝试通过反射设置值,我会得到异常:“对象与目标类型不匹配。”
我在做/思考一些根本不正确的事情吗?
c# - 为什么 Assembly.GetTypes() 需要引用?
我想从我的程序集中获取所有类型,但我没有引用,也不关心它们。查找接口类型与引用有什么关系?我有办法解决这个问题吗?
抛出: FileNotFoundException 无法加载文件或程序集“某些引用的程序集”或其依赖项之一。该系统找不到指定的文件。
c# - 将运算符“注入”到现有类型中
Scriptsharp 使用 mscorlib 0.7.0.0,它在 int32 上具有隐式运算符 System.Number。我理解它存在的原因,尽管我认为编译器可以以另一种方式处理转换。
现在我不能在使用标准.Net mscorlib 的其他项目(前单元测试)中使用生成的scriptsharp .Dll。> 3.0。
有没有办法通过反射“注入”该运算符?
我之前的问题给我带来了更进一步的错误,但是这个....
c# - 如何获得可空值(而不是基础值)通过 FieldInfo.GetValue()?
在一个应用程序中,我有一些代码具有 Nullable<int> 的 FieldInfo,我需要检索可空值(而不是基础值),如下面的示例所示:
我的问题是v总是被分配底层值(在这个示例中是一个int)而不是可为空的(在这个示例中是一个 Nullable<int>)。
PS:实际应用程序在编译时没有可为空的类型,因此无法进行强制转换。
提前感谢您的帮助。
c# - 通过反射调用方法会导致 System.MissingMethodException
我正在动态加载程序集并从中调用静态方法。当该方法使用不重要的引用(例如 mscorlib 或 System.Core)时,就会出现问题 - 我得到System.MissingMethodException
. 我尝试过浏览已加载程序集的引用程序集并手动将它们全部加载,从而强制将它们加载到 AppDomain 上。我已经检查CurrentDomain.GetAssemblies
过,程序集已加载。
参考是第 3 方库,我知道(从CurrentDomain.GetAssemblies
)加载了正确的版本。
什么可能导致这个问题?
.net - 等效于 MethodBase.GetCurrentMethod 的可移植类库
是否存在等效于 MethodBase.GetCurrentMethod 的可移植类库?
我是 PCL 的新手。我正在研究是否可以使用 PCL 来保存一些肯定会在 Silverlight 上使用并可能在其他地方使用的客户端代码。扫描了源代码后,我可以看到对 MethodBase.GetCurrentMethod 的大量调用,这些调用似乎在 PCL 中不存在。
** 编辑 **
我已经从有问题的图书馆中撕下了这个样本。IsNullOrEmpty() 使用的 String.IsNullOrWhiteSpace(String) 似乎不可用,所以那一点是软糖。
c# - 反射类型适应
我的反射有问题,基本上我需要像这样调用 Class 的方法:
我需要用反射来调用它,因为我从“外部”C#软件接收到这个输入,我需要评估我需要调用的女巫方法。
问题是,作为输入,我有 2 个对象通过“提示命令行”传递,我已将其转换为字节:
因此,当我执行 Refection 时,我看到一个错误“找不到方法 addNumber”,因为没有找到输入中有 2 个字节的方法。我认为它期望 2 Int32 而不是 2 Byte。
我该如何解决?
D.
更新 1:
更新 2: 我无法转换为 Int32,因为我从 EXE 文件中收到此调用:
例子:
解决方案
基本上每个参数都通过,我施放它。之后我动态传递它:
c# - 使用Reflection获取PropertyInfo,只想看到有mutators的accessor
使用反射我只想检索同时具有 aget
和 aset
方法的属性,并忽略只有 a的属性get
。我想要做的是给用户一个他/她能够改变的变量列表,所以向他们展示只有一个get
方法的属性是误导性的。
鉴于下面的这段代码,用户只会被显示Name
。或者我可以同时显示他们两个,但显示为灰色,UniqueID
以便他们知道他们无法更改它。
背景信息:我使用的是 C# 4.0。