有没有办法拦截有关库元数据的查询?

时间:2016-06-08 11:32:35

标签: c# c++ dll

好的,我已将c#cpp放在标签中,但实际上这与任何语言有关。而且它也不是特定于Windows的。

假设我有一个web api,它有一个函数,它将以某种界面描述语言返回所有可能的查询(并不重要)。

现在说我有一个库,它在运行时会在内部执行一些神奇的操作并从api idl调用中获取所有函数并将这些函数注入其中。

这很好,但我没有在ide中获得任何代码,因为它只在运行时发生。

有没有办法拦截有关dll元数据的查询,并将结果替换为api idl调用生成的内容?

我打算在.net中这样做,但我也对其他语言的解决方案感到好奇。

1 个答案:

答案 0 :(得分:0)

在Visual Studio中添加对Web服务的引用时,您将获得代码完成 - 但可能您没有使用Visual Studio,或者Web服务不兼容。

我认为您不会解决任何拦截元数据调用的问题 - 您提到该库在运行时获取元数据,这太晚了,所以您也会过晚拦截这些查询。

与Visual Studio解决此问题的方式类似,您可以自己编写一个转换元数据并生成代码的转换器。运行转换器后,您的代码可以针对生成的代码进行编译,而生成的代码会在实际的Web服务调用之下进行编译。

每当服务合同发生变化时,您都可以再次运行转换器,并且您的代码将显示合同已更改的错误。