2008-10-17 29 views
3

爲了工作,我必須使用外部公司的API編碼來處理他們專有的數據庫解決方案。不幸的是,他們提供的文檔更多的是一個示例指南,然後是適當的API文檔,因此它非常清晰地顯示錯誤代碼,方法返回和異常等細節。因此,舉例來說,一個類將有一個.GetErrorCode()方法,但我不知道這些錯誤數字是什麼意思,因爲他們沒有記錄什麼數字與什麼錯誤匹配。在許多情況下,一個方法將返回一個Object,而沒有記錄它實際返回的Object的類型。我已經多次詢問他們是否有適當的文件,但他們似乎認爲上面的細節是合適的祕密。那麼,是否有任何工具或方法可以解決我的有限或者在某些情況下不存在的文檔。如何處理.NET下未公開的API /框架?

請注意,我正在使用Visual Studo 2005並在C#下編寫.Net。

而在任何人回答之前,「不要使用API​​」,我必須,這是爲了工作。

回答

6

一個討厭的場景我討厭建議它,但也許reflector是你的朋友,如果它沒有被混淆。可能有一些IP問題,但在這種情況下,逆轉它似乎是找出API的唯一可行方法。但是,我懷疑(從像.GetErrorCode())方法,這是P/Invoke之上的墊片 - 在這種情況下,甚至反射器將只顯示給你很多外部調用...

主要的其他事情我可以這樣說:寫很多單元測試,涵蓋了你如何使用它......這種方式,如果你猜錯了,而且有什麼變化,你就會早早知道。

1

想到最好的工具包括電話和電子郵件。希望你能保持竊聽那邊的人,直到他們給你更多的有用信息... :(

3

如果我不能得到代碼樣本或找原來的開發商,我通常會訴諸Reflector看看底層代碼它是緩慢和低效,但有時這是你能做的一切。

1

使用Reflector看到源代碼。應該表現出你的枚舉的getErrorCode用於消息。

反射器,順便說一句,是最大的程序在宇宙的歷史中

3

這取決於你的情況。如果您要爲API付款,您應該繼續向公司施壓,以便更好地瞭解如何使用API​​。

如果這樣做不起作用,我會做的是在開發時啓動自己的文檔。保留一個筆記本,一個個人Wiki(想起screwturn wiki)或某種電子文檔。正如其他人提到的,你可以使用Reflector來幫助到達源代碼(如果沒有被混淆)。

創建自己的文檔可能不是你想要的,但是如果你不能獲得真實的文檔,至少在你學習的時候創建一些文檔,這樣你可以有幾個月(或幾年) )當你試圖維護使用API​​構建的代碼時,你會走上正軌。