使用字符串访问属性

2024-03-07

给定一个与对象字段同名的字符串,如何获取对象字段的引用?

例如,假设我向 GetFieldByStr 方法传入一个名为“field1”的字符串,并且该对象具有字段名称 field1,那么如何获取对 field1 对象的引用?我假设以某种方式使用反射。

class Example {
   private FieldExample attr1;

   void GetFieldByStr(String str) {
      // We get passed in "field1" as a string, now I want 
      // to get the field1 attribute.
   }
}

你需要使用反射 http://msdn.microsoft.com/en-us/library/f7ykdhsy.aspx:

FieldInfo field = typeof(Example).GetField(str);
object value = field.GetValue(this);

(对于属性,请使用PropertyInfo)

注意value是一个对象;为了用它做任何有用的事情,您需要将其转换为某个类或接口(或使用dynamic在 C# 4) 中。

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

使用字符串访问属性 的相关文章

  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • (图书馆问题)

    我正在使用 Sencha Architect 和 Extjs 4 并按照此处的基本示例进行操作 http geoext org tutorials quickstart html basic example http geoext org
  • 如何将时间跨度转换为小数?

    我的值正好是1 08 43 23在我的文本框中 它等于 1d 08 43 23 我想将该值转换为十进制 以便将其乘以另一个十进制值 但是当我使用Convert ToDecimal它返回错误 输入字符串的格式无效 Is Convert ToD
  • 为 Asp.net core web api 启用 HTTPS 安全连接

    我有使用 ASP NET Core 2 1 创建的 REST API 应用程序 REST API 由 WebHostBuilder 创建并由 Kestrel 托管 Startup Kernel kernel restApiServer ne
  • Ajax 自动完成(或自动建议)与 TAB 完成/自动填充类似于 shell 命令行完成?

    我正在实现 AJAX 自动完成 自动建议功能 我不仅想要执行与用户键入的内容类似的常规显示建议 而且还想让用户完成部分完成以节省键入 所以 想象我的字典中有这些值 青苹果 青梨 绿色水果 蓝天 蓝色水 蓝色唤醒 如果用户输入 g 建议应该是
  • GetElementById() 找不到标签?

    我有一个有效的 XML 文件正在由以下 NET C windows 服务读取 有问题的标签 u1 000 绝对在元素中
  • 使用 CUDA 占用计算器

    我正在使用占用率计算器 但我无法理解如何获取每个线程的寄存器 每个块的共享内存 我阅读了文档 我使用 Visual Studio 所以在 CUDA 构建规则下的项目属性中 gt 命令行 gt 附加选项 I添加 ptxas options v
  • Selenium WebDriver 如何解决陈旧元素引用异常?

    我在 Selenium 2 Web 驱动程序测试中有以下代码 该代码在调试时有效 但在构建中运行时大多数情况下都会失败 我知道这一定与页面未刷新的方式有关 但不知道如何解决它 因此任何有关我做错了什么的指示都会受到赞赏 我使用 JSF pr
  • ToArrayAsync() 抛出“源 IQueryable 未实现 IAsyncEnumerable”

    我在 ASP NET Core 上有一个 MVC 项目 我的问题与 IQueryable 和异步有关 我编写了以下搜索方法IQueryable
  • 如何在客户端获取Tomcat JSESSIONID?

    我想在客户端获取Tomcat的JSESSIONID 那可能吗 如果是 怎么办 Thanks 这取决于 JSESSIONID 的传输方式 如果它是会话 cookie 请参阅如何使用javascript获取cookie http www w3s
  • 如果从数据库加载两次,hibernate 是否会加载同一实例的两个单独副本?

    我知道关于延迟加载有很多不同的问题 但我的问题有点不同 假设我有一个实体 A 其中有实体 B 的集合 类似地 在实体 B 中 我有 A 的集合 在这两种情况下 都使用lazy true 选项 Entity A的实例 aA 有 gt Set
  • 如何安装GWT浏览器插件?

    我如何安装适用于 Chrome 的 GWT 浏览器插件 https chrome google com webstore detail gwt developer plugin jpjpnpmbddbjkfaccnmhnkdgjideiei
  • 如何清除应用程序中的远程通知?

    有没有办法从 iPhone 屏幕顶部向下滑动时清除通知横幅中的远程通知 我尝试将徽章编号设置为零 application applicationIconBadgeNumber 0 代表中didFinishLaunchingWithOptio
  • 在代码中访问编译器常量

    是否可以在如下代码中使用编译器定义的常量 If DEALER DEBUG ID12345 Then If Dealer ID DEALER DEBUG Then Do something End If End If 我正在运行批处理 但我的
  • 如何从 MediaCodec 解码器的输出中提取 PCM 样本

    我正在尝试从解码的 mp4 缓冲区获取 PCM 样本以进行进一步处理 我首先从使用手机相机应用程序录制的视频文件中提取音轨 并且确保当我获得 audio mp4 mime 键时已选择音轨 MediaExtractor extractor n
  • Python 中日期的正则表达式:英国:日-月-年

    我正在尝试使用 python 编写一个 REGEX 来根据 英国 日 月 年 识别日期 我写了一些随机字符串 如下所示 string these are just rubbish 01 13 00 00 44 44 11 2 2222 24
  • 使用 CodeIgniter 的动态表单生成器[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我计划为不同的表单布局构建一个动态表单 http bootsnipp com forms version 3 http bootsnipp
  • python字典中的5个最大值

    我有一本这样的字典 A a 10 b 843 c 39 我想获取这个字典的 5 个最大值并用它存储一个新的字典 为了获得最大值 我做了 max A iteritems key operator itemgetter 1 0 也许这是一件容易
  • 有没有办法强制 conda install 安装软件包及其依赖项而不是给出错误

    我有一个正在安装软件包的 miniconda 环境 我想安装一个软件包 并且我知道可能会存在一些冲突 但是要解决这些冲突 要么需要安装缺少的软件包 要么需要降级 升级另一个软件包 并且它已成为一个尝试降级 升级和安装软件包的漫长兔子洞 有没
  • SSR 如何与 PWA 结合

    如何使用 PWA 渐进式 Web 应用程序 进行 SSR 服务器端渲染 据我了解 SSR SSR 运行时将加载页面并运行必要的脚本以将数据加载到页面上 然后返回渲染后的html 这对于不会运行 javascript 的网络爬虫和无脚本的浏览
  • 使用字符串访问属性

    给定一个与对象字段同名的字符串 如何获取对象字段的引用 例如 假设我向 GetFieldByStr 方法传入一个名为 field1 的字符串 并且该对象具有字段名称 field1 那么如何获取对 field1 对象的引用 我假设以某种方式使