C# 4:确定动态调用中的参数传递语义

2024-03-21

在 C# 4 中,当从 DynamicObject 派生并重写 TryInvokeMember 时,如何确定在调用站点提供的任何参数是否已在不带 out 或 ref 语义的情况下传递?我可以在提供的活页夹中看到一些包含此信息的私有字段(即 Microsoft.CSharp.RuntimeBinder.ICSharpInvokeOrInvokeMemberBinder.ArgumentInfo 属性),但它似乎无法访问。我认为这些信息必须在某个地方可用,否则它将严重限制人们对所提供输入的了解。


我与 DLR 团队讨论了此事。不幸的是,答案是否定的,此信息不适用于 DynamicObject。

原因是 ref/out 参数非常特定于 C#。动态对象可以在多种语言之间共享,但并非所有语言都有这些符号。 DynamicObject 是“按值调用”,因此您的对象可以由不同的 API 使用。

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

C# 4:确定动态调用中的参数传递语义 的相关文章

  • 有没有办法分析 WCF 应用程序的性能?

    我们正在尝试测量我们的系统的性能 该系统是一个使用 WCF 调用的 NET 3 5 应用程序 问题是到目前为止 我们无法分析这些调用中的方法 编写了一个 winforms 客户端应用程序来测试我们的系统 我们尝试使用ANTS 4 Profi
  • 如何使用 Qtimer 添加 1 秒延迟

    我目前有一个方法如下 void SomeMethod int a Delay for one sec timer gt start 1000 After one sec SomeOtherFunction a 这个方法实际上是一个附加到信号
  • 如何查找boost运行时版本

    我正在编写一个使用 boost 的 C 库 在这个库中 我想包含有关用于编译我的库的二进制版本的 boost 版本的信息 我可以使用宏BOOST VERSION这很好 我还想确定哪个是 boost 的运行时版本 以便我可以与用于编译我的库的
  • 加权 Voronoi 的 CGAL 2D APOLLONIUS 图 - 如何生成和获取面和顶点?

    我正在尝试根据阿波罗尼乌斯图生成加权沃罗诺伊 我正在使用 CGAL 库 我找不到如何从 apollonius 获取面和顶点的好例子 我有以下类型定义 typedef double NT typedef CGAL Cartesian lt N
  • 每个 CPU 核心处于 C0 电源状态的时间

    任何帮助弄清楚如何做到这一点都会很棒 在过去一秒内 每个 CPU 核心处于 C0 电源状态的时间有多少 这是针对 Mac 应用程序的 因此需要 Objective C cocoa 和 c OS X 没有任何公开 CPU c 状态的 API
  • 线程安全的get(访问器方法)

    我目前正在使用以下代码对变量进行线程安全访问 int gnVariable void getVariableValue int pnValue acquireLock Acquires the protection mechanism pn
  • VBA 中的 VSTO:AddIn.Object 有时不返回任何内容 (null)

    Given VSTO 插件 An override object RequestComAddInAutomationService 它返回一个名为的类的实例Facade在我的场景中 Excel 2007 中的 VBA 宏可访问AddIn O
  • 为什么在 Linux 上字符串文字的内存地址与其他字符串文字的内存地址如此不同?

    我注意到字符串文字在内存中的地址与其他常量和变量 Linux 操作系统 非常不同 它们有许多前导零 未打印 Example const char h Hi int i 1 printf p n void h printf p n void
  • Code First - 实体框架 - 如何公开外键

    我有以下数据对象 public class Customer System Data Entity ModelConfiguration EntityTypeConfiguration
  • 使用 Thread.Sleep() 时,异步编程如何与线程一起工作?

    假设 前言 在之前的问题中 我们注意到Thread Sleep阻塞线程参见 什么时候使用Task Delay 什么时候使用Thread Sleep https stackoverflow com questions 20082221 whe
  • c#Registry to XML无效字符问题

    我在尝试从注册表创建 XML 文件时遇到问题 在我的笔记本电脑 W7 64b 上它工作正常 生成了 xml 文件 但在另一台计算机 Xp 32b 上抛出异常 System ArgumentException 十六进制值 0x00 是无效字符
  • 是否可以用 C# 为 Android 编写应用程序?

    我们都知道Android运行Dalvik VM程序 通常开发人员用 Java 编写程序并将其编译为 Dalvik 字节码 我想知道是否有可能创建一个可以接受 C 代码并将其编译为 Dalvik 字节码的编译器 嗯 这是一种选择 或者您可以在
  • 未定义条件编译符号

    我无法让 Visual Studio 按照我的预期运行 我创建了 2 个配置文件 一个定义了符号 FOO 另一个定义了符号 BAR 我有这个代码 static class MyClass if FOO public static strin
  • 让 WIX 在项目中包含引用

    我对 WiX 和设置自定义安装程序完全陌生 所以我对问题的主题表示歉意 我有一个内部业务应用程序 日记 它构建并运行良好 因此我按照教程 官方文档添加 WiX 项目并引用日记的 csproj 然后构建并运行这个最基本版本的 WiX 安装程序
  • 标准头文件中的 C 编译器错误 - 未定义的 C++ 定义

    我正在尝试编译 C 程序 但收到许多错误 这些错误是在标准 C 头文件 inttypes h stdio h stat h 等 中遇到的 错误的来源是以下未定义的常量 BEGIN DECLS END DECLS BEGIN NAMESPAC
  • 无论表单上的焦点控件如何,如何捕获 Keys.F1?

    我使用了 KeyDown 事件和一些简单的代码 例如if e KeyCode Keys F1 捕获在表单上按下 F1 但如果表单上有一些文本框 或者表单上有一些带有 Dock Fill 的电子表格 则上面的代码将毫无用处并且不执行任何操作
  • 选择要重写哪个基类的方法

    鉴于以下情况 class Observer public virtual void Observe Parameter p 0 template
  • gcc 中的“假设”子句

    gcc 最新版本 4 8 4 9 是否有类似于以下的 假设 子句 assume 内置icc支持吗 例如 assume n 8 0 从 gcc 4 8 2 开始 gcc 中没有 assume 的等效项 我不知道为什么 这会非常有用 马夫索建议
  • 什么是多重重继承?

    我将以下称为 多重重新继承 直接继承一个类一次 并通过继承其一个或多个后代来间接继承一次或多次 通过继承一个类的两个或多个后代来间接继承一个类两次或多次 我想知道它是否存在以及如何明确访问嵌入的子对象 1 Professional C 2n
  • 当另一个进程使用 std::fstream 写入文件时从文件读取[重复]

    这个问题在这里已经有答案了 我需要从文件中逐行读取 它是由 std getline 完成的 另一个进程的问题是一直向其附加数据 然后我需要读取新行 例如 文件一开始包含10行 我的程序读取了10行 那么我的程序应该等待 过了一会儿 另一个进

随机推荐

  • gitlab - 图标被矩形替换

    我最近安装了 gitlab 似乎所有图标都被矩形替换了 其他一切似乎都工作正常 知道是什么原因造成的吗 edit on another computer I seem to get Korean characters instead of
  • Ruby on Rails 实时搜索(过滤)

    我正在关注 Railscasts Rails ajax 教程并遇到了一些麻烦 实时搜索不起作用 我必须单击搜索按钮才能获取结果 我有两个搜索过滤器 第一个是 select tag 第二个是一个复选框 这是我的代码 结果 html erb t
  • 默认启动项目由什么决定?

    我有一个包含 Visual Studio 项目文件的开源项目 有一个包含四个项目文件的解决方案文件 当源文件被分发和解压时 Visual Studio 选择错误的项目作为默认项目 新用户不知道他们需要右键单击某个项目 然后选择设置为启动项目
  • Kendo Grid 导出到 Excel 时出错“无法读取 jQuery.js 文件中未定义的属性‘长度’”

    我正在尝试将剑道网格导出到 Excel 然后我在控制台中出现错误 如果有人知道的话请帮助我 提前致谢 angular js 13920 TypeError Cannot read property length of undefined a
  • 向我的免费 G​​itHub 帐户添加协作者?

    我创建了一个 GitHub 帐户 我想授予某人写入权限 以便他可以像我一样进行推送 有没有办法通过免费计划添加协作者 如果没有 我能做什么 除了购买付费帐户 这是我将来会做的 Go to Manage Access设置下的页面 https
  • 如何将旧式 Windows 图元文件写入文件

    我可以生成旧的 未增强的 图元文件 如何将其写入磁盘 使其成为正确的 wmf 文件 佩措尔德没有提到这一点 http www user tu chemnitz de heha petzold ch18b htm 但是将图元文件写入磁盘有一个
  • PHP 比较字符串是否(几乎)相等

    我需要比较可以用多种方式书写的名称 例如 像 St Thomas 这样的名字有时会写成 St Thomas 或 Sant Thomas 最好 我希望构建一个函数 为比较提供 平等 的百分比 就像一些论坛所做的那样 这篇文章已编辑 5 例如
  • 如何从应用程序后台录制视频:Android

    我正在开发一个应用程序 它将能够通过使用从应用程序后台录制视频Service 问题描述 1 我创建了一个活动来启动服务 如下所示 package com android camerarecorder import android app A
  • 由于缩放问题,响应式网站无法正确显示水平线

    我正在使用CSS向网站添加响应式功能 该网站已经属于他们一段时间了 现在正在添加响应式功能 以便它可以支持移动版本 我面临一个问题 假设有多行由水平线分隔 在某个地方我正在使用hr在某些地方我只是简单地使用div to 这是小提琴的示例链接
  • 在 ASP:Repeater 中查找控件

    我正在尝试访问中继器内的控件 该控件位于 标记内 我正在使用 FindControl 但它总是显示为 Null 我究竟做错了什么 我的猜测是 FindControl 只能用于记录级事件 例如 ItemDataBound protected
  • 评估连接速度的最佳方法

    我正在开发一个应用程序 需要通过流媒体获取音乐文件以进行现场播放 在请求歌曲 api 中 我可以指定带宽 例如 50kbps 100kbps 300 600 或 1 Mbps 带宽越大 获取文件的时间就越多 因为我不希望用户受到限制 所以我
  • 在 R Shiny 中捕获选择输入?

    我试图捕获当人们按下应用程序上的 获取 URL 按钮时所选择的 URL 应该发生的是event reactive 应该看看input go button并看到它已被按下 然后它应该执行表达式以从选择输入中获取所选的 url 不幸的是它什么也
  • FacesContext 和“Servlet”上下文

    有没有与 FacesContext 等效的东西 但是在 servlet 环境中 我有一些 DAOSessionManager 来处理我的数据库的事务 当当前页面是使用 JSF 编写时 我可以使用 FacesContext 来识别当前的 ht
  • python ssh 密码提示

    我试图在使用 ssh 时根据提示自动传递密码 通常 rsa 密钥用于防止密码提示 但我不能保证每个用户都正确设置 因此我希望脚本在用户给出密码时自动设置密码 这里是 ssh subprocess Popen ssh localhost py
  • 使用 xPath 修改 XML 文件

    我想使用 xPath 修改现有的 XML 文件 如果该节点不存在 则应该创建它 如果需要 还可以创建它的父节点 一个例子
  • 当手机方向改变时,EditText如何保留其值而不是textview?

    Edittext 的特别之处在于它可以保留值 但不能保留 Textview 和其他一些小部件 我们必须为它们使用 onSavedInstance 方法 EditText 背后的魔力是什么 特别是它可以保留值 如果有人能告诉它内部是如何工作的
  • Rails:未定义的方法“paginations_per”

    我正在安装一个名为 Carrier 的 gemhttps github com stanislaw carrier blob master Gemfile https github com stanislaw carrier blob ma
  • 在自定义帖子类型中显示父分类

    我有一组自定义帖子类型的学校 位置顺序如下 London 1 Oxford Road 2 Cambridge Road Paris 1 Napoleon Road 2 Tower Road 如何更改以下内容以便输出位置父级而不是位置子级 b
  • 迭代 PySpark GroupedData

    假设原始数据如下 Competitor Region ProductA ProductB Comp1 A 10 15 Comp1 B 11 16 Comp1 C 11 15 Comp2 A 9 16 Comp2 B 12 14 Comp2
  • C# 4:确定动态调用中的参数传递语义

    在 C 4 中 当从 DynamicObject 派生并重写 TryInvokeMember 时 如何确定在调用站点提供的任何参数是否已在不带 out 或 ref 语义的情况下传递 我可以在提供的活页夹中看到一些包含此信息的私有字段 即 M