這是我想達到的。然而,在經過一天半的時間後,我幾乎相信它是不可能完成的。如果有人能告訴我如何做到這一點,我會很感激。家長共享方法從孩子中提取信息並生成孩子?
我有一個.NET父類父與共享方法Fetch()。提取可以採用各種參數來幫助它知道要提取哪些特定記錄,但目前這並不相關。
Fetch()需要知道要查找哪個表以查找其後的記錄。對於繼承Parent的每個子類,該表是不同的。我想將表名保存在一個屬於Child類屬性的字符串中。然後,每個Child都可以提供自己的表名,Parent可以處理所有這些都以相同方式工作的Fetching。
一旦它執行查詢,Fetch()應該有一個DataReader。所有Child類都有一個構造函數,它可以接收DataReader作爲參數,並使用它來生成一個由讀者填充屬性的實例。
我必須強調一件事: Fetch是一種共享方法。如果我從頭開始設計它,我可能不會那麼做,但是因爲它是我重構了一些絕對的代碼,他們去了並且建立了一些絕對的代碼(他可能是或者可能不是我2年前)使用Fetch()作爲每個Child類的一個共享方法的項目(或者說,我希望將這個類作爲這個新Parent的子類),並且確實很好,不必更改那些項目到實例。
編輯: 我正在運行到具體的是,我無法弄清楚如何獲得表名入取(),也不知道怎樣去確定,以調用其上所產生的DataReader的構造函數的子類。
因此,要回顧:
- 家長共用fetch()方法
- 方法在Child.Fetch稱爲()
- 家長會從子表信息
- 取()知道Child的類名,所以它可以用它讀取的DataReader調用構造函數。
可以這樣做嗎?非常感謝。
Ryan,可以做些什麼?關鍵點在哪裏? – 2010-07-15 21:39:59
嘿,好問題:所以我發現當我在Fetch()裏面的時候,我找不到一種方法從Child中取出表名,這樣我就可以從正確的位置獲取數據,我也不能確定類孩子。我懷疑這是因爲在Shared方法和實例方法中可以做什麼的限制。現在有道理嗎? – Blumer 2010-07-15 21:45:28