如何创建可在 IronPython 中处理的 C# 事件处理程序?

2023-12-02

如何创建可在 IronPython 中处理的 C# 事件处理程序?

请注意,我使用的是 IronPython 2.0.1。我能够毫无问题地处理来自系统类的事件(例如 Window.KeyDown),但是当我尝试定义自己的 C# 事件时,当我尝试从 IronPython 挂钩它时,会引发异常。

抛出的异常是 ArgumentTypeException,它包含消息“无法添加到私有事件”。考虑到我试图挂钩的事件是公开的,这个消息似乎很奇怪。

我的 C# 类如下所示:

class Foo
{
    ...

    public event EventHandler Bar;
}

我的 IronPython 设置代码如下所示:

ScriptEngine engine = Python.CreateEngine();
ScriptRuntime runtime = engine.Runtime;
ScriptScope scope = runtime.CreateScope();
ScriptSource source = engine.CreateScriptSourceFromFile("Test.py");
Foo bar = new Foo();
scope.SetVariable("Foo", bar);
source.Execute(scope); <-- Exception is thrown here.

我的 IronPython 脚本如下所示:

def BarHandler(*args):
    pass

Foo.Bar += BarHandler

有谁知道我做错了吗?

或者 IronPython 出了什么问题?


我想到了。

课程和活动都需要公开。

eg

public class Foo
{
   ...   

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

如何创建可在 IronPython 中处理的 C# 事件处理程序? 的相关文章

  • 无法使用 strptime() 获取秒数

    我收到 YYYY MM DDThh mm ss S Z hh mm 这种格式的日期时间 我正在尝试使用复制该值strptime如下所示 struct tm time 0 char pEnd strptime datetime Y m dT
  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • C++ 求二维数组每一行的最大值

    我已经设法用这个找到我的二维数组的每一行的最小值 void findLowest int A Cm int n int m int min A 0 0 for int i 0 i lt n i for int j 0 j lt m j if
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 已过时 - OpenCV 的错误模式

    我正在使用 OpenCV 1 进行一些图像处理 并且对 cvSetErrMode 函数 它是 CxCore 的一部分 感到困惑 OpenCV 具有三种错误模式 叶 调用错误处理程序后 程序终止 Parent 程序没有终止 但错误处理程序被调
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的

随机推荐

  • 对静态成员的未定义引用

    我正在使用交叉编译器 我的代码是 class WindowsTimer public WindowsTimer frequency QuadPart 0ull private static LARGE INTEGER frequency 我
  • 使用 DatePicker 记录 Espresso 测试

    测试记录器生成的代码在记录后运行时立即失败 原因是 在录制时 我点击年份 年份旋转器弹出 我向后滚动 然后选择其中一个年份 记录器不捕获滚动 在 Xcode 中 他们添加了一种滚动到项目的方法 我在浓缩咖啡中找不到类似的东西 使用Andro
  • 使用 openNLP maxent 训练模型

    我有黄金数据 其中注释了多个文档中的所有房间号 我想使用 openNLP 来训练一个使用这些数据并对房间号进行分类的模型 我不知道从哪里开始 我阅读了 openNLP maxent 文档 查看了 opennlp tools 中的示例 现在查
  • 可以禁用 Symfony 的 intl 要求吗?

    我在共享主机上有一个 Symfony 2 项目 显然 提供商不会为 PHP 打开 Intl 扩展 有没有办法打开它 或者我被迫重新评估整个项目 如果您的网络服务器不提供intl扩展 您可以使用Locale成分 它可以通过 Composer
  • 在对象数组中,查找属性与搜索匹配的对象的索引的最快方法

    我一直在四处冲浪 试图找到一种有效的方法来做到这一点 但一无所获 我有一个对象数组 如下所示 array i id some number array i name some name 我想要做的是找到 id 等于的对象的索引 例如 0 1
  • 图像无法显示,因为它包含 php gd 中的错误

    这是Link我正在创建一个图像 但是我的 GD 已安装并正常工作 正如我使用第一个示例进行测试时一样 但此代码会中断并标记 图像无法显示 因为它包含错误 CODE
  • Windows Phone 8.1 相机初始化 - 访问被拒绝异常

    使用适用于 Windows Phone 的 8 1 MediaCapture 类 已声明 音频 和 网络摄像头 的功能 其中 90 是would成为异常的原因 Kicker 是 它在 WP 模拟器中完美运行 但在实际设备上却崩溃了 确切的例
  • Java:捕获屏幕上内容的视频

    我们正在考虑用 Java 编写一个软件 在运行时记录特定时间内的监控内容 您对如何有效捕获监视器输出有什么建议吗 占用的 CPU 越少 我们捕获屏幕的频率就越多 生成的视频就越流畅 而不会干扰正在运行的其他应用程序 如果复制屏幕捕获部分不是
  • fgetcsv( ) 和 Unicode 的问题

    我有一个代码 在本地主机上 我读取 csv 文件 带有 Unicode 字符 没有问题 但是当在主机上上传代码时输出什么也没有 为什么 什么是解决方案 while data fgetcsv fin 5000 FALSE var dump d
  • ThumbnailUtils.createVideoThumbnail 对于现有 mp4 视频返回 null

    我有一个视频 我需要获取它的缩略图 我用ThumbnailUtils用于此目的的类 但它返回 null 而不是预期的Bitmap 当我调试我的应用程序时 我在里面看到了createVideoThumbnail method MediaMet
  • 在服务器端渲染中反应传单地图错误

    已解决 请阅读更新 2 你好 我在使用 React leaflet 地图的 React 入门套件中遇到此错误 它就像 github 模块示例 但我不知道问题是什么 我认为SSR有问题 React 版本 16 x 和 React 入门套件 更
  • WiX 静默安装无法启动内置 .EXE:WiX v3

    我知道这可能看起来像是重复的 但我已经尝试了几乎所有在线内容 包括下面的链接 使用双击时 安装成功完成 并启动我的 EXE 它是一个 WPF UI 问题是 如果在命令行中运行 WiX 安装程序会安装 但我的 WPF 不会启动 没有驱动程序更
  • 在批处理脚本中将用户输入的第一个字母变为大写

    这是我用来为新客户端创建文件夹的批处理脚本 ECHO OFF SET p clientLast Enter Client s Last Name SET p clientFirst Enter Client s First Name ECH
  • 我打算中止该场景,但是该场景和功能被报告为失败

    当满足某些条件逻辑时 我打算停止当前场景的运行 这意味着该场景已通过 然而 cucumber reporting 报告称该场景及其功能失败了 我在条件逻辑中使用 karate abort 函数 您会看到 mainFlow unhsFlow
  • 如何更改小向导图像的大小并在 inno setup 中具有自定义字段

    我希望我所有的 inno 设置页面如下所示 可以使用以下命令访问小向导图像WizardForm WizardSmallBitmapImage这是类型TBitmapImage 您可以更改此控件的大小和位置以适合您的设计 在顶部面板内 您还可以
  • NumericUpDown 背景色未按预期工作

    我最近需要编写 Windows NumericUpDown 控件的一个版本 该控件可以突出显示某个值是否是强制的 它需要通过更改控件的背景颜色来做到这一点 我认为这足够简单 但在尝试这样做时 我发现它有一个奇怪的副作用 即无法完全绘制所有控
  • 紧急回滚后如何将回滚的变更集+修复签入 TFS

    我们使用 VS2013 偶然向 TFS 提交了一些代码 这创建了变更集 2 为了修复这个错误 我们将变更集 2 回滚到本地计算机 然后我们提交了变更集 2 的回滚 从而创建了变更集 3 现在我们想要获取我们最初在本地计算机上错误签入的代码
  • 如何在 python 中制作固定大小的格式化字符串? [复制]

    这个问题在这里已经有答案了 我想创建一个具有固定大小和字段之间固定位置的格式化字符串 一个例子可以更好地解释 这里显然有 3 个不同的字段 并且字符串是固定大小的 XXX 123 98 00 YYYYY 3 1 00 ZZ 42 123 3
  • 无法加载文件或程序集'file:///C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ asp.net vs2010

    昨天我的项目运行顺利 但今天我遇到了错误 详细信息如下 无法加载文件或程序集 file C WINDOWS Microsoft NET Framework v4 0 30319 Temporary ASP NET Files parktms
  • 如何创建可在 IronPython 中处理的 C# 事件处理程序?

    如何创建可在 IronPython 中处理的 C 事件处理程序 请注意 我使用的是 IronPython 2 0 1 我能够毫无问题地处理来自系统类的事件 例如 Window KeyDown 但是当我尝试定义自己的 C 事件时 当我尝试从