通过反射检测本机对象

2023-12-14

我正在使用基于反射的对象翻译器。

它基本上循环遍历对象的属性,并将值分配给翻译对象上具有相同名称/类型的属性。

对象A.Name =“乔”

翻译为:

ObjectB.Name =“乔”

我需要提出一个特殊情况,当属性是自定义类时,例如:

对象A.地址

我希望我可以使用 PropertyType 的 IsClass 标志检测此类属性

propInfo.PropertyType.IsClass

但此标志似乎也为字符串属性返回 true。

有没有另一种方法可以验证该属性是否属于非本机类型?


我假设您想确定目标类型是否不是基元。你也许可以使用TypeCode为此,例如:

public bool IsNotCoreType(Type type)
{
    return (type != typeof(object) && Type.GetTypeCode(type) == TypeCode.Object);
}

任何非原始类型都应该返回TypeCode.Object作为结果Type.GetTypeCode,所以我们可以检查我们是否得到了它并且类型本身不是System.Object.

也许这会有帮助?

UPDATE:我已将该方法重命名为不是核心类型涵盖原语和非原语,例如String, DateTime等等(见下面的评论)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过反射检测本机对象 的相关文章

随机推荐

  • Swagger-ui 与 Spring 安全性

    我有一个带有身份验证服务的简单 REST 应用程序 我尝试向其中添加 swagger 和 swagger ui 但我只能看到我的端点 v2 api docs In swagger ui html我只看到端点组 但无法扩展任何列表 在 chr
  • 本地化 (l10n):为我的 mozilla 插件设置默认语言

    我正在开发一个 Mozilla 插件并实现 l10n 我的问题是 如何为我的插件设置默认语言 当我的插件不支持语言时 它会切换到默认语言 当 Mozilla Firefox 的语言改变时 插件会改变它的语言环境吗 如何更改我的 Firefo
  • 图像周围的 Silverlight 文本

    我正在尝试将文本包裹在图像周围 就像使用 html float 属性一样 有没有办法在 silverlight 3 中实现这一点 Thanks 我不久前解决了这个问题 据我所知 确实没有什么好方法 这会起作用 尽管只是很痛苦 为了简化解释
  • 如何配置 PyCharm 在没有 ^space 的情况下自动完成代码?

    When typing in PyCharm I used to automatically get code completion suggestions without having to hit Ctrl Space I must h
  • 没有提升的 WCF wsdualhttpbinding 客户端

    我创建了一个 Windows 服务 服务器 和一个使用 WCF wsdualhttpbinding 回调功能的 WPF 客户端 两个软件之间的所有内容都可以正常工作 但我遇到的问题是客户端需要以管理员权限运行才能工作 这是可以理解的 因为它
  • 适用于 VB6 和 .net 应用程序的最佳 IPC

    在我们的应用程序 文档管理系统 中 我们应该收到屏幕更改的通知 或通知其他程序屏幕更改 以便使两个应用程序查看相同的数据 一个是订单履行应用程序 另一个是订单履行应用程序原始传真的文档查看器 履行应用程序是用 vb6 编写的 文档管理器是用
  • SQL Server 文件名和版本[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我很幸运能够成为一台服务器的管理员 但我不知道这台服务器上有多少个版本的sql server 当我打开Microsoft SQL Server文件时 有一些名为80 90 100 1
  • 线性渐变在 IE 11 中不起作用

    我有一个 css 规则 可以在 chrome firefox 中正常工作 并且曾经在 IE 中工作 现在我看似有效的 css 不起作用了 s tour border radius 5px margin 0 auto width 250px
  • Java HttpClient - 通过代理发布文件

    我尝试使用代理从我的网络应用程序调用外部网站 此外 还需要在此外部网站上执行 POST 请求 我正在使用 tomcat7 org apache httpcomponents 4 3 4 spring 在没有代理的情况下进行跟踪是有效的 我得
  • dropwizard 应用程序中的配置更改以与 React browserHistory 配合使用

    我有一个react应用程序运行在dropwizard服务器 这bundle js在 ui 上提供 当我打开 ui 上的 url 并导航应用程序 并转到 ui content 时 它工作正常 但是当我尝试刷新特定页面 例如 app conte
  • 在 ssrs 中显示 10 行的最大值

    我有一份报告 其中我想显示 10 名具有最高薪水的员工数据 我想通过 SSRS 来完成此操作 请帮助我 请通过 SSRS 而不是 SSMS 来完成 提前致谢 我假设您有一个数据集 每个员工一行 按工资降序排序 您可以申请一个TOP N过滤到
  • 如何在 Swift 中使用 CTFontCopyCharacterSet() 获取字体的所有字符?

    如何获取字体的所有字符CTFontCopyCharacterSet 在斯威夫特 对于 macOS 在实施该方法时出现了该问题OSX CGGlyph 到 UniChar用斯威夫特回答 func createUnicodeFontMap Get
  • 禁用的文本框丢失视图状态

    我根据所选的下拉菜单动态生成表单 该表格由字段组成 十进制值的数据输入 几个文本字段 必须在末尾添加所有小数值并用该值更新 Total TextBox 总计文本框被禁用 当用户输入值后单击表单上的 保存 按钮时 除了禁用的文本框之外 整个表
  • Python - Pandas:选择每组的第一个观察结果

    我想使用以下命令将我以前的 SAS 代码改编为 Pythondataframe框架 在 SAS 中 我经常使用这种类型的代码 假设列按 group id 排序 其中 group id 取值 1 到 10 其中每个 group id 有多个观
  • 有没有办法使用 Excel 以编程方式使用动态数据定义表区域?

    我有一张包含表格的工作表 由 jasper 报告查询生成 该表将成为我的数据透视表的来源 数据透视表是使用外部连接 来自 Microsoft Query 创建的 由于需要先定义源表 然后才能在 Micrososft Query 中使用它 所
  • 打开和关闭 mysqli 查询的正确方法

    我有一个简单但令人困惑的问题 特别是对于像我这样自学程序员的人 我已经阅读了 PHP NET 和 MYSQL COM 中的不同文档 它们都解释了如何打开和如何关闭它 但对于这个问题并没有真正的帮助 至少对我来说 我学习的方式如下我需要一个文
  • 按最近日期过滤查询结果

    这段代码 SELECT O896IA VEMPPRSA REG NR O896IA VEMPPRSA DIS NR AS RRDD Mgmt Lvl MGMT LVL Count O896IA VEMPPRSA SYS EMP ID NR
  • 如何在画布上绘制像素字体而不使用抗锯齿

    我有一个像素艺术字体 在 ttf 文件中 我发现它的原始分辨率为 8 像素 CTX font 8px mainfont 当我执行 fillText 时 字体在 Firefox 中显示完美 但在 chrome 中显示模糊 firefox ch
  • 如何在 Linux 中以编程方式检测 IP 地址更改?

    有没有办法使用 C 以编程方式检测 Linux 中本地计算机上的 IP 地址更改 给你 这不需要轮询就可以完成 它只监听 RTM NEWADDR 但如果需要的话应该很容易更改为支持 RTM DELADDR include
  • 通过反射检测本机对象

    我正在使用基于反射的对象翻译器 它基本上循环遍历对象的属性 并将值分配给翻译对象上具有相同名称 类型的属性 对象A Name 乔 翻译为 ObjectB Name 乔 我需要提出一个特殊情况 当属性是自定义类时 例如 对象A 地址 我希望我