reflection 相关问题

反射是程序在运行时观察和/或修改其结构和/或行为的能力。反射高度依赖于实现代码语言 - 请标记使用此标记时使用的代码语言。

PropertyGrid、DefaultValueAttribute、动态对象和枚举

注意:我正在使用.Net 1.1,尽管我并不完全反对使用更高版本的答案。 我正在 PropertyGrid 中显示一些动态生成的对象。这些对象有数字、t...

回答 2 投票 0

具有动态ArrayList项目类型的Gson TypeToken

我有这个代码: 类型 typeOfObjectsList = new TypeToken>() {}.getType(); ListobjectsList = new Gson().fromJson(json, typeOfObjectsList); 它转换...

回答 14 投票 0

为什么 Assembly.GetExecutingAssembly() 在 NuGet 包中返回不同的结果?

我是创建 NuGet 包的新手,我在各种环境中运行了以下代码片段: /// /// 尝试在执行程序集中按名称查找类型,然后再查找类型 /// 在 我是创建 NuGet 包的新手,我在各种环境中运行了以下代码片段: /// <summary> /// Tries to find type by name in the executing assembly and after that /// in referenced assemblies. /// </summary> /// <param name="typeName">Name of the type to find (can be full or assembly qualified name as well).</param> /// <returns>Type found using the given name (or null if not found).</returns> public static Type FindType(string typeName) { if (typeName == null) throw new ArgumentNullException(nameof(typeName)); // Helper method for finding the type in an assembly Type Finder(Assembly ass) => ass?.GetTypes().FirstOrDefault(type => typeName.In(type.Name, type.FullName, type.AssemblyQualifiedName) ); // Get the current assembly var executingAssembly = Assembly.GetExecutingAssembly(); // Check if the type is inside the current assembly var targetType = Finder(executingAssembly); // Go through all of the referenced assemblies foreach (var assName in executingAssembly.GetReferencedAssemblies()) { // If the type was found, return it if (targetType != null) return targetType; // Check if the type is inside the assembly targetType = Finder(Assembly.Load(assName)); } return null; // Type wasn't found, return null } 如果我将其作为本地函数或通过引用的项目运行,它可以正常工作,但是当我创建 NuGet 包并使用 NuGet 包内的方法的实现来调用该方法时,它会返回 null。 方法 Assembly.GetExecutingAssembly 声称它返回 The assembly that contains the code that is currently executing 但从 NuGet 包运行它时我得到了不同的结果。 如果将方法打包到 NuGet 包中,我该怎么做才能从方法中获得正确的输出? 不要依赖于 GetCallingAssembly(),行为可能会有所不同 取决于 JIT 编译器 要解决您的问题,您可以使用: Assembly.GetEntryAssembly()

回答 1 投票 0

在 C# 中继承的类类型上递归获取GenericArguments?

在 C# 中我有 Gen1 类 {} Gen2 类:Gen1 {} 类 Ins:Gen2 {} var ins = new Ins(); 类型 insType = ins.GetType(); 我怎样才能得到

回答 1 投票 0

将`Type`转换为`KType`

有没有办法从 java.lang.reflect.Type 获取 Kotlin KType? 背景:我正在编写一些代码,这些代码从类中获取属性/字段并将它们传递给方法(想想 JUnit 4 理论......

回答 1 投票 0

EF Core 在添加时更改实体的 ID。无法跟踪实体,因为具有键值的另一个实例已被跟踪

我正在开发一个为关系数据库生成随机数据的库。我使用反射在 DbContext 中添加实体实例,因为我无法显式指定实例的类型。

回答 1 投票 0

EFCore 在添加时更改实体的 ID。无法跟踪实体,因为具有键值的另一个实例已被跟踪

我正在开发一个为关系数据库生成随机数据的库。我使用 Reflection 在 DbContext 中添加实体实例,因为我无法显式指定实例的类型: p...

回答 1 投票 0

反映程序集类型时出现文件未找到错误

遍历 *.dll 文件的目录,找到它们并为每个文件创建程序集引用。 一旦我有了反射对象,我就会迭代每个对象中可用的所有类型,从...

回答 2 投票 0

有没有办法使用reflect来获取原始函数及其签名

我想从特定结构的所有方法创建一个 funcMap。 我有以下代码: 类型 templateFuncs 结构{} func (t templateFuncs) UnescapeHTML(html 字符串) template.HTML { html =

回答 1 投票 0

动态加载程序集u200f AssemblyResolve 问题

注意: 这是我上一篇文章的延续: 动态调用程序集的复杂 API 问题 我正在编写一个在网络上运行并使用 SQL Ser 的 .Net Windows 窗体应用程序...

回答 2 投票 0

动态调用程序集的复杂 API 问题

我有一个有趣的挑战,我想知道这里是否有人可以给我一些指导。 我正在编写一个 .Net Windows 窗体应用程序,该应用程序在网络上运行并使用 SQL Server 来保存和...

回答 2 投票 0

如何通过显式指定参数类型找到 IEnumerable<T>.ToList() 方法,然后使用自定义参数类型调用它?

假设我们有以下代码(对我自己的代码进行了高度简化的修改): 使用系统; 使用系统集合; 使用 System.Collections.Generic; 使用 System.Linq; 命名空间

回答 1 投票 0

如何通过显式指定参数类型找到 IEnumerable<T>.ToList() 方法,然后使用自定义参数类型调用它

假设我们有以下代码(对我自己的代码进行了高度简化的修改): 使用系统; 使用系统集合; 使用 System.Collections.Generic; 使用 System.Linq; 命名空间

回答 1 投票 0

使用反射将泛型类传递给泛型方法

上下文如下: 我们有一个名为 Body 的基类,以及从基类 Body 继承的许多其他类。 公共课主体{ //... } 公共类A:主体{ //... } 公开课...

回答 1 投票 0

如何使用source_location::function_name获取数据成员名称

阅读此源(以及我的答案)和此源后,我的印象是我们可以使用 std::source_location::function_name 来提取数据成员的名称。 假设我们得到了一些

回答 1 投票 0

反思:如何从 kotlin 伴生对象获取私有字段的值?

我想要一个扩展,允许我从单元测试的伴随对象中获取私有字段 dataMap 的值。 带有伴随对象的类: @服务 类 BroadcastServiceImpl {

回答 1 投票 0

将 Java List<POJO> 转换为 Map<String, List<Object>>,其中键是字段名称,值是按字段列出的值列表

在 Java 中将 List 转换为 Map>,其中键是字段名称,值是字段值的列表。 类火车{ 公共最终字符串源; ...

回答 1 投票 0

未处理的异常:System.IO.FileNotFoundException:在自定义生成的程序集中找不到文件或程序集“System.Private.CoreLib”

我使用.NET 9通过新的emit api以编程方式创建.NET程序集/程序。 我的测试代码如下所示: PersistedAssemblyBuilder assemblyBuilder = new(new AssemblyName("

回答 1 投票 0

获取类DisplayName属性值

我花了最后一个小时尝试获取应用于类的 DisplayName 属性的值。 我发现从方法和属性中获取属性值很简单,但我很困难......

回答 4 投票 0

如何获取Java 14方法引用的MethodInfo?

我本质上是在问与这个老问题相同的问题,但针对的是 Java 14 而不是 Java 8。为了避免回答者导航到老问题的麻烦,我将在这里重新表述。 我想得到n...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.