【问题标题】:Creating Events in Mono.Cecil在 Mono.Cecil 中创建事件
【发布时间】:2011-08-29 10:39:07
【问题描述】:

我一直在尝试使用 Mono.Cecil 创建事件,但不确定如何。

EventDefinition newEvent = new EventDefinition("newEvent", 
                                               Mono.Cecil.EventAttributes.None, 
                                               someRefToTheEventHandlerDelegate);

我卡在插件和删除部分。请帮帮我。

【问题讨论】:

    标签: c# events mono il mono.cecil


    【解决方案1】:

    您需要为“add_newEvent”和“remove_newEvent”添加 MethodDefinition 并将它们分配给 newEvent 实例。

    了解 Cecil 的工作原理以及它希望如何进行设置的一种简单方法是:

    1) 在程序集中编译你想要的东西(例如你想要的事件);

    2) 用 Mono.Cecil 加载它

    3) 使用调试器(MonoDevelop 或 VisualStudio 可以)查看内容是如何填充的;

    4) 将相同的内容编入您的应用程序;

    5) 利润! ;-)

    【讨论】:

    • 我希望不必经历那种阶段^^我会在我从学校回来的时候尝试一下。还是谢谢!
    • 这并不复杂 - 您已经知道 (1),Assembly.ReadDefinition(fileName) 会做 (2),如果您在 IDE 中,您可以深入调试器监视以查看 MainModule ,然后是 Type[x],然后是 Events[y],它将显示添加和删除方法。 (4) 是几行代码,(5) 是你的奖品 ;-) 最重要的是,这个解决方案可以应用于几乎任何你需要与 Cecil 一起做的事情!
    • 谢谢,除了编码身体鳕鱼,还有什么需要考虑的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 2014-01-10
    • 1970-01-01
    • 2023-04-01
    • 2011-12-27
    • 2015-05-28
    • 2020-10-09
    相关资源
    最近更新 更多