为了工作,我必须使用外部公司的 API 进行编码来处理他们的专有数据库解决方案。不幸的是,他们提供的文档更多的是示例指南,而不是正确的 API 文档,因此它很少介绍错误代码、方法返回和异常等具体细节。

例如,一个类将有一个 .GetErrorCode() 方法,但我不知道这些错误号的含义,因为它们没有记录哪个数字与哪个错误相匹配。在许多情况下,方法将返回一个对象,但没有说明它实际返回的对象类型的文档。我曾多次要求他们提供适当的文件,但他们似乎认为上述细节属于专有机密。那么,有没有什么工具或方法可以解决我有限的或在某些情况下不存在的文档。

请注意,我使用的是 Visual Studo 2005 并在 .Net 下使用 C# 进行编码。

在有人回答“不要使用 API”之前,我必须这样做,这是为了工作。

有帮助吗?

解决方案

一个令人讨厌的场景。我不想建议它,但也许 反射器 如果没有混淆的话,它就是你的朋友。可能存在一些 IP 问题,但在这种情况下,逆向似乎是找出 API 的唯一可行方法。但是,我怀疑(从 .GetErrorCode() 等方法)这是 P/Invoke 之上的垫片 - 在这种情况下,即使反射器也只会向您显示大量外部调用...

我能说的另一件事是:写 地段 单元测试涵盖了您如何尝试使用它......这样,如果你猜错了并且事情发生了变化,你就会尽早知道。

其他提示

如果我无法获取代码示例或与原始开发人员交谈,我通常会求助于 反射器 查看底层代码。它既缓慢又低效,但有时这就是你所能做的。

这取决于你的情况。如果您为 API 付费,您应该继续向公司施压,要求其提供有关如何使用 API 的更好文档。

如果这不起作用,我要做的就是在开发时开始编写自己的文档。保留一个笔记本,一个个人维基(螺丝旋维基 我想到了),或某种电子文档。正如其他一些人提到的,您可以使用 Reflector 来帮助获取源代码(如果它没有被混淆)。

创建自己的文档可能不是您想要的,但如果您无法获得真正的文档,至少在学习过程中创建一些文档,以便您可以在未来几个月(或几年)内获得一些指导当您尝试维护使用 API 构建的代码时。

我想到的最好的工具包括电话和电子邮件。希望你能继续骚扰那里的人,直到他们给你更多有用的信息......:(

使用 反射器 查看源代码。应该显示 GetErrorCode 消息的枚举。

顺便说一句,反射器是宇宙历史上最伟大的程序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top