.Net 3.5 中 Dynamic 关键字的使用

2024-03-21

我使用 .net v4.5 在 Visual Studio 2013 中编写了这段代码。我遇到的问题是,我现在必须降级到 .net v3.5,而动态关键字会抛出错误,因为缺少程序集引用。 .net v3.5 中是否有与“动态”等效的类型,或者有什么方法可以让我达到与下面相同的结果?

我想我可能找到了答案here https://stackoverflow.com/questions/4568452/dynamic-keyword-problem,但是当我添加 .Attributes 或 .Text 属性修改时 var 抛出错误。

private void CreateControl<T>(string objText,
                              Panel pnl,
                              string HTMLTag = "<td>",
                              string applicantID = "",
                              EventHandler hndl = null)
{
    pnl.Controls.Add(new LiteralControl(HTMLTag));
    dynamic obj = Activator.CreateInstance(typeof(T));
    obj.Text = objText;

    if (applicantID != string.Empty)
    {
        obj.Attributes.Add("ApplicantID", applicantID);
    }
    if (hndl != null)
    {
        obj.Click += new EventHandler(hndl);
    }

    pnl.Controls.Add(obj);
    pnl.Controls.Add(new LiteralControl(HTMLTag.Insert(1, "/")));
}

由于 .net v3.5 中没有“动态”控制,我没有尝试以某种注定会失败的方式将其组合在一起,而是决定完全放弃此方法并编写一些重载。目前这种方式似乎更安全;工作原理是一样的,只是多了一点代码......

    #region CreateControl() Overloads
            /// <summary>
            /// Creates a LinkButton control.
            /// </summary>
            /// <param name="objText">.Text property of this LinkButton control.</param>
            /// <param name="pnl">Panel this control will be attached to.</param>
            /// <param name="hndl">Event handler attached to this LinkButton control.</param>
            /// <param name="HTMLTag">Opening tag used to contain this control.</param>
            private void CreateControl(string objText,
                                       Panel pnl,
                                       EventHandler hndl,
                                       string HTMLTag)
            {
                pnl.Controls.Add(new LiteralControl(HTMLTag));
                LinkButton obj = new LinkButton();
                obj.Text = objText;
                obj.Click += new EventHandler(hndl);

                pnl.Controls.Add(obj);
                pnl.Controls.Add(new LiteralControl(HTMLTag.Insert(1, "/")));
            }
            /// <summary>
            /// Creates a Label control.
            /// </summary>
            /// <param name="objText">.Text property of this Label control.</param>
            /// <param name="pnl">Panel this control will be attached to.</param>
            /// <param name="HTMLTag">Opening tag used to contain this control.</param>
            private void CreateControl(string objText,
                                       Panel pnl,
                                       string HTMLTag)
            {
                pnl.Controls.Add(new LiteralControl(HTMLTag));
                Label obj = new Label();
                obj.Text = objText;

                pnl.Controls.Add(obj);
                pnl.Controls.Add(new LiteralControl(HTMLTag.Insert(1, "/")));
            }
            /// <summary>
            /// Creates the specified literal control.
            /// </summary>
            /// <param name="ControlText">HTML text containing instructions for creating the desired literal control.</param>
            /// <param name="pnl">Panel this literal control will be attached to.</param>
            private void CreateControl(string ControlText, 
                                       Panel pnl)
            {
                pnl.Controls.Add(new LiteralControl(ControlText));
            }
        #endregion
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.Net 3.5 中 Dynamic 关键字的使用 的相关文章

随机推荐

  • 定义自定义指标来计算“tensorflow.keras”的“几何平均分数”的问题

    我正在研究tensorflow keras 中的不平衡分类问题 我决定按照建议计算 几何平均分数 这个答案经过交叉验证 https stats stackexchange com a 289132 233268 我找到了一个其实施 http
  • 如何使用空间来搜索邮政编码的半径?

    背景 我正在编写一个应用程序 用于查找邮政编码特定半径内的事件 您可以将其想象为 Ticketmaster 您输入邮政编码 x 半径内的所有音乐会都会显示出来 我有一个数据库表 其中包含邮政编码以及每个邮政编码的纬度和经度 我还有一个 Ev
  • 我应该在局部变量中引用“this”吗?

    我经常在代码中看到这样的情况 var me this 这是为什么 如果我在局部变量中引用 this 是否会有一些性能提升 有功能的话就很有用了inside一个函数 这样这些嵌套函数中的代码需要访问this从外部背景来看 function e
  • 循环遍历数组以在 React Router 中创建路由

    我想要使 用一个 API 它会返回 React 网站所需的所有网站路线 我不完全确定如何做到这一点 甚至谷歌搜索一个例子 我的代码如下所示 ReactDOM render
  • 应用程序更新后可以保存我放入钥匙串中的值吗?

    我在应用商店中有一个应用程序 在我的应用程序中 我使用钥匙串将一些值 例如 姓名 保存为加密的 如果我使用 xCode 更新我的应用程序 则值没有问题 它们都按照我的意愿保存在钥匙串中 但是如果我将新版本放入应用程序商店并使用应用程序商店中
  • 如何在Python中使用kivy启用/禁用TextInput编辑

    我有一段代码 1 TextInput 值应该显示 但首先它不应该是可编辑的 单击相应的 CheckBox 后 TextInput 将可编辑 2 使用迭代 Label 和 TextInput 应该获得值 Label 和 TextInput 的
  • Android Espresso:“未找到测试”、“进程崩溃”

    当使用 Espresso 测试我的 Android 应用程序时 我注意到运行配置为All in Module运行时找不到测试All in Package成功了 我创建了以下可重现的案例 使用向导使用 minSdk 8 和空 Activity
  • IntelliJ 自动替换双引号字符串

    I am using IntelliJ IDEA for Angular 6 Typescript development When new import is added automatically by IntelliJ it s al
  • 操作栏菜单项文本颜色

    如何更改菜单项标题的文本颜色 我尝试将其更改如下 但它仅更改操作栏标题文本的颜色 而不更改菜单项文本的颜色 尝试这样的事情
  • 指定的控制器无效(错误) - Zend Framework

    我总是收到这个错误 blub libraries Zend Controller Dispatcher Standard php 中出现异常 Zend Controller Dispatcher Exception 消息为 指定的控制器无效
  • 我什么时候应该重写 Equals 函数? [复制]

    这个问题在这里已经有答案了 可能的重复 Java 总是覆盖等于 https stackoverflow com questions 1549553 java always override equals 我应该覆盖equals我创建的任何类
  • Python:Numpy 将数组的每一行与另一个数组的每一行相乘

    我知道对此存在一些疑问 这应该可以通过广播实现 但不知怎的 我真的不明白广播如何通过添加附加轴来工作 还有一个类似的问题 其中一个数组的每一列与另一个数组的每一列相乘 将每一列与每一列相乘 https stackoverflow com q
  • Flowtype - 如何编写类工厂的声明,例如骨干模型?

    广泛的谷歌搜索和阅读 Flow 文档和示例并没有显示 Javascript 中非常常见的模式的任何示例 具有返回类的函数 一个典型的例子是 Backbone var User Backbone Model extend getFullNam
  • 为什么 DOCUMENT_ROOT 与远程服务器上的 realpath('.') 不同

    with echo realpath br echo dirname FILE br echo realpath dirname FILE br echo SERVER PHP SELF br echo getcwd 我总是得到 servi
  • 如何检查 CLI 程序是否正在等待来自 stdin 的输入?

    如何检查我刚刚使用 CreateProcess 启动的 CLI 程序是否正在等待来自 Windows C API 的标准输入的输入 正如上面的一些评论所说 一旦程序已经开始等待 您就无法检查程序是否正在等待标准输入 您可以使用事件处理程序
  • 2 个文档在 MongoDB 中合并

    我需要从 MongoDB 中不同集合的两个文档中获取数据 其中有 1 个公共字段 对数据库没有更改 我是新手 请帮助我 a db users find username email protected cdn cgi l email pro
  • 使用 JQuery 从另一个网站获取 HTML:可能吗?合法的?

    我正在尝试从不在同一域中的网页获取 HTML 代码 html 文本被解析并总结了在 HTML 代码来源的页面上找到的食谱 食谱名称 主要成分 步骤数 然后 用户可以单击该链接并转到域外的该网页来查看菜谱 我知道同源策略 但这是否适用于从国内
  • 使用 Chrome 打开正文中包含 HTML 的 Outlook

    虽然我已经从 Stack 中找到了很多这方面的信息 特别是here https stackoverflow com questions 5620324 mailto with html body 我只是想绝对确定在 Chrome 中无法执行
  • 嵌套哈希中的 Form_tag 参数

    我有一个没有与之关联的模型的表单 所以我正在使用form tag而不是form for 正如预期的那样 当用户提交表单时 每个字段都包含在 params 哈希中 但表单会发生很大变化 我希望在 params 哈希中包含一个哈希 该哈希将保存
  • .Net 3.5 中 Dynamic 关键字的使用

    我使用 net v4 5 在 Visual Studio 2013 中编写了这段代码 我遇到的问题是 我现在必须降级到 net v3 5 而动态关键字会抛出错误 因为缺少程序集引用 net v3 5 中是否有与 动态 等效的类型 或者有什么