gpt4 book ai didi

c# - 包装函数的通用方法

转载 作者:太空狗 更新时间:2023-10-30 01:24:45 25 4
gpt4 key购买 nike

假设我想将一个函数包装在另一个函数中,以便为包装函数添加一些功能。但是我事先不知道返回类型或参数,因为这些方法是作为 Web 服务代理生成的。

我的第一个思路是使用 Func<T> .但是有些函数可能会返回 void,在这种情况下 Action<T>会更合适。

现在我的问题是:是否有一种很好的通用方法来实现这一点?我需要寻找某种模式吗?

最佳答案

嗯,Facade Pattern想到......这不是一种非常自动的做事方式,但它有效。您基本上只是将另一个接口(interface)放在代理前面并调用它。然后,您可以添加所需的任何功能。

另一种方法是使用 aspect oriented programming。 .我用过 PostSharp (有空的时候)做这个这个过去。您可以通过向方法/属性添加属性来在函数中添加预处理/后处理等操作。然后,AOP 组件使用代码编织来重写您的 IL 以包含您引用的代码。请注意,这会显着减慢构建过程。

关于c# - 包装函数的通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8592092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com