如何以编程方式将代码插入程序集

本文关键字:代码 插入 程序集 方式 编程 | 更新日期: 2023-09-27 18:18:24

我有一个。net c#汇编。我有两个:例如,二进制文件和没有日志记录器的源代码。所有我需要的是插入属性,这将被初始化的特定记录器。然后我需要在所有方法中引入记录器调用器。第一种方法——是手动编写属性及其调用。第二种方法是编写另一个类方法(我想在同一个程序集中),它将自动完成。

有可能吗?有什么建议吗?

我认为这是可能的,因为这是面试的问题之一。但没有证据表明这是可能的,他们希望听到"不,手动完成"。

如何以编程方式将代码插入程序集

这就是我们在架构术语中所说的"横切关注点"。日志记录跨越了应用程序的许多方面。

在微软企业库中有一些功能可以处理它。您需要的部分是策略注入库。然后,您可以在配置中指定要匹配的方法(基于方法名称/结构)和要调用的函数。通过这种方式,你可以将日志记录作为应用程序的一个适当的横切关注点,而不是必须手动编码到每个方法中。

如果不修改源代码并重新编译,就不可能改变方法的执行。你可以写一个包装器类,它会公开所有的类和方法,这些类和方法会先调用你的记录器,然后再调用方法,但这不是他们要求的。

所以问题的答案是1。是可能的,2。是不可能的,如果您必须添加日志记录支持,则需要手动将其添加到每个方法中。