向 ExpandoObject 添加未知(在设计时)属性

2023-11-29

只是探索 c# 4。尝试让我的头脑了解所有这些动态的东西。抱歉,如果这个问题很愚蠢,我没有这个领域的经验。

如果我有一个 ExpandoObject 并且想要在运行时向其添加公共属性(使用 get 和 set),我将如何去做呢?

例如,我有一个 documentTemplate 和一个文档,其中有一个指向 documentTemplate 的属性。该文档模板有一些标签标题(例如学生发展的能力),在制作文档时应解决这些标签标题(例如浓度、记忆力等)。因此,一旦在文档中设置了模板,我想创建一个类,该类具有与模板中的标签标题同名的属性,然后使用一些 UI 元素,例如 PropertyGrid,我可以让用户根据标签标题填写标签值。

谢谢阅读!


我想知道如何“动态”地将成员添加到类中,并想出了这个示例:

using System;
using System.Collections.Generic;
using System.Dynamic;

class Program
{
    static void Main()
    {
        dynamic expando = new ExpandoObject();
        var p = expando as IDictionary<String, object>;

        p["A"] = "New val 1";
        p["B"] = "New val 2";

        Console.WriteLine(expando.A);
        Console.WriteLine(expando.B);
    }
}

此代码片段的要点是,成员 A 和 B 被定义为字符串文字(硬编码/字符串化)并通过 ExpandoObject 的 IDictionary 接口添加。我们通过直接访问键并输出到控制台来测试键的存在和值(并证明这个概念)。

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

向 ExpandoObject 添加未知(在设计时)属性 的相关文章

  • 为什么相同的代码在同一台计算机上的执行时间可能不同?

    我是 C 编程新手 我编写了代码并希望获得它的运行时 这就是我所做的 每次运行代码时 我都会得到不同的运行时值 这样对吗 或者我的代码有问题吗 int main int argc char argv time t start end sta
  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 如何使用MemoryCache代替Timer来触发一个方法?

    以下方法通过等待已运行操作的结果来处理并发请求 对数据的请求可能会使用相同 不同的凭据同时出现 对于每组唯一的凭据 最多可以有一个GetCurrentInternal呼叫正在进行中 当准备就绪时 该呼叫的结果将返回给所有排队的服务员 pri
  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • Unix网络编程澄清

    我正在翻阅这本经典书籍Unix网络编程 https rads stackoverflow com amzn click com 0139498761 当我偶然发现这个程序时 第 6 8 节 第 179 180 页 include unp h
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable
  • 使用 GhostScript.NET 打印 PDF DPI 打印问题

    我在用GhostScript NET http ghostscriptnet codeplex com打印 PDF 当我以 96DPI 打印时 PDF 打印效果很好 但有点模糊 如果我尝试以 600DPI 打印文档 打印的页面会被极大地放大

随机推荐

  • 响应 SQL 'in' 语句的 R 语句是什么?

    a case df data frame id c 101 102 102 103 104 104 104 calmonth c 01 01 01 01 01 01 02 product c apple apple htc htc appl
  • 如何生成开发MDM/APNS证书?

    我们已经取得了iOS开发者企业帐户 并且我们已经收到了 pem格式的MDM证书 我们已经从门户网站下载了这个mdm证书https identity apple com pushcert 但我们不知道这是生产 MDM 证书还是开发 MDM 证
  • 使用视图寻呼机 android 覆盖 Flow 功能

    我必须在我的应用程序中实现类似于mobikwik 应用程序封面流程 and 我已经尝试过Android CoverFlow 小部件库以及其他一些人 但没有任何效果按预期进行 我如何使用 ViewPager 实现这种类型的视图 我已经创建了我
  • 给定四个坐标检查它是否形成正方形

    所以我试图编写一个简单的方法 它接受四个坐标集并确定它们是否形成正方形 我的方法是从一个点开始 计算其他三个点与基点之间的距离 由此我们可以得到具有相同值的两条边和一条对角线 然后我使用毕达哥拉斯定理来查找边的平方是否等于对角线 如果是 i
  • 如何在表单之外捕获按键操作?

    我一直在尝试捕获在 winform 之外按下的按键 但显然 KeyPress 事件不起作用 我无法比 KeyPress 事件更接近 该事件仅适用于指定的表单级别 我怀疑我必须这样做 DllImportAttribute user32 dll
  • R中的最长公共子串查找两个字符串之间的不连续匹配

    我有一个关于在 R 中查找最长公共子字符串的问题 在 StackOverflow 上搜索一些帖子时 我了解了 qualV 包 但是 我看到这个包中的 LCS 函数实际上找到了 string1 中出现在 string2 中的所有字符 即使它们
  • 显示 Lucene 搜索结果中的示例文本

    目前 我正在使用 Lucene 版本 3 0 2 创建一个类似于字典的搜索应用程序 我想要显示的对象之一是一种 示例 Lucene 将在书中查找单词 然后显示使用该单词的句子 我一直在阅读 Lucene in Action 一书 它提到了类
  • 如何访问 Sinatra 中的*传入*标头?

    我通过以下方式向 Sinatra 应用程序发送请求 curl X POST header MyHeader 123444 http localhost 9292 test d 我如何在路线中访问它 这些不起作用 headers MyHead
  • 分区表,每个分区位于我的硬盘上的不同磁盘上

    我有一个表想要在 MYSQL 5 5 中分区 我知道该怎么做 但我还需要为每个分区指定一个磁盘 例如 我想输入 P01 在 c P02 在 d 等等 我目前正在使用这个语句 这不能满足我的要求 但效果很好 ALTER TABLE trans
  • 如何通过 MS Access 在 SQL Server 中创建临时表

    我有一个到 SQL Server 的 ODBC 连接 我需要在 Access 中处理数据 但时间太长 我的想法是将这些数据推送到 SQL Server 临时表并让 SQL Server 进行处理 我的 Access 数据库中有许多传递查询
  • 使用更新触发器更新另一个表

    我正在开发的程序的后端设计很差 基本上需要两个不同的表来保存完全相同的信息 我正在尝试编写一个触发器 它将使用刚刚在表 A 中更新的相同信息来更新表 B 哦 这是使用 MYSQL 数据库 我不确定我是否只是有语法错误或者我是否缺少概念 任何
  • Docker 如何仅在发生更改时运行 piprequirements.txt?

    在 Dockerfile 中我有一个安装层requirements txt FROM python 2 7 RUN pip install r requirements txt 当我构建 docker 映像时 它会运行整个过程不管对此文件所
  • HtmlUnit 下载文件

    我正在尝试通过 HTMLUnit 下载文件 但每次我使用这样的代码时 InputStream stream anchor click getWebResponse getContentAsStream 我得到的是网站而不是文件 下载链接如下
  • 通过xml设置自定义字体

    我如何设置一个字体 其 ttf 驻留在我的assets通过xml文件夹 我知道如何以编程方式做到这一点但是如何通过 xml 做到这一点呢 提前致谢 您不能直接使用 XML 来完成此操作 但是您可以扩展TextView并设置默认字体 pack
  • C# 在运行时添加属性

    我读过几篇文章 但在运行时向类添加属性时仍然遇到问题 它应该很简单 因为我有一个这样的类 public class MyClass String Template String Term 在运行时 我必须添加一些属性 例如电话 电子邮件 这
  • 检测页面上的滚动方向 - 更新先前的值

    我正在使用 React 我需要获得滚动方向才能做一些事情 我有一个工作代码 但我不知道如何存储和update上一个滚动位置 这是我的代码 componentDidMount const prev window scrollY window
  • HTML5 播放器 视频颜色错误

    我有一个大问题 我自己制作了一个应用程序演示视频 并使用了我想要的背景颜色 现在我想在 HTML5 播放器中播放它 一切正常 但现在 当我在 Chrome Safari 和 Firefox 上仔细观看我的视频时 我理解了颜色不完全相同就像我
  • 如何用C#找到一个月中的第三个星期五?

    给定一个日期 类型DateTime 如何找到该日期所在月份的第三个星期五 我将重复我的回答here加上一点点 与语言无关的版本 要获取该月的第一天 请从该月的第一天开始 yyyy mm 01 使用任何可用的函数来给出与星期几相对应的数字 在
  • 将我的 npm 模块添加到导入时出错

    任何帮助理解为什么我在下面安装然后在我的 Stackblitz 中引用 npm Angular2 wizard 时遇到此错误 我有这个斯塔克闪电战我安装了Angular2 向导 安装后 我在 test module ts 文件中引用了它 如
  • 向 ExpandoObject 添加未知(在设计时)属性

    只是探索 c 4 尝试让我的头脑了解所有这些动态的东西 抱歉 如果这个问题很愚蠢 我没有这个领域的经验 如果我有一个 ExpandoObject 并且想要在运行时向其添加公共属性 使用 get 和 set 我将如何去做呢 例如 我有一个 d