3

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

例如,一个类将有一个 .GetErrorCode() 方法,但我不知道这些错误编号是什么意思,因为它们没有记录哪个编号与哪个错误匹配。在许多情况下,一个方法将返回一个 Object,但没有文档说明它实际返回的 Object 类型。我一再要求他们提供适当的文件,但他们似乎认为上述细节是保密的。那么,是否有任何工具或方法可以解决我有限或在某些情况下不存在的文档。

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

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

4

5 回答 5

6

一个糟糕的场景。我不想建议它,但如果没有混淆,也许反射器是你的朋友。可能存在一些 IP 问题,但在这种情况下,反转它似乎是找出 API 是什么的唯一可行方法。但是,我怀疑(来自 .GetErrorCode() 之类的方法)这是 P/Invoke 之上的一个 shim - 在这种情况下,即使是反射器也会向您显示许多外部调用......

我可以说的另一件事主要是:编写大量单元测试来涵盖您如何尝试使用它……这样,如果您猜错了并且发生了变化,您就会尽早知道。

于 2008-10-17T12:24:57.820 回答
3

如果我无法获得代码示例或与原始开发人员交谈,我通常会求助于Reflector来查看底层代码。它缓慢且效率低下,但有时这就是您所能做的。

于 2008-10-17T12:24:30.287 回答
3

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

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

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

于 2008-10-17T12:33:13.733 回答
1

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

于 2008-10-17T12:24:04.670 回答
1

使用Reflector查看源代码。应该向您显示 GetErrorCode 消息的枚举。

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

于 2008-10-17T12:24:37.807 回答