2010-02-23 69 views
2

我在尋找一些關於如何以最有效的方式做到這一點的想法。具有多個公共別名的類庫

我正在用一個用C#編寫的.NET庫替換一箇舊的COM庫,該庫用於大型傳統ASP網站。舊圖書館只有兩個班。我已經在新庫中的一個類中重寫了這個功能。

舊代碼會在幾十頁中對這兩個類進行多次引用。我已經得到周圍的名稱問題,通過公開,從我的一個主類,同時執行以前的類和所有的功能得到了一些空類是很好:

public class Foo1 : Bar {} 
public class Foo2 : Bar {} 

酒吧是主類執行所有功能而兩個空的類是引用此功能的ASP頁面中使用的名稱。聲明這些空類似乎效率低下,但它工作正常,緩解了需要觸摸現有的傳統ASP代碼。

我非常喜歡做這樣的事情在我的圖書館:

public using Foo1 = Bar; 
public using Foo2 = Bar; 

顯然,這並不工作,但我覺得它最能說明我想要做什麼。我希望我的類有兩個可以在名稱空間外引用的公有別名。

我一直在做相當多的挖掘,我一直沒能找到一種方法,讓我這樣做。

但是我有幾個不同的解決方案。

  1. 重命名ASP代碼中的所有現有類引用以與我的新類保持一致。
  2. 使用從我的新的全包式類派生的一些空的公共類聲明。

是否有其他方法更有效?

+1

+1:開始遷移遺留應用程序到較新的技術的好問題。 – 2010-02-23 16:33:57

回答

1

我想從你的主類繼承是更好的方法。這將允許您不要閱讀所有參考資料,並冒着在這裏和那裏出現的一些錯誤的風險,並確保您的更改對於您的應用程序是透明的。我認爲這足夠有效! =)

+0

@弗蘭克黑爾:感謝您接受我的答案,作爲您的問題的解決方案! =) – 2010-02-24 02:08:08

+0

沒問題,感謝您花時間閱讀我的瘋狂問題。哈哈! – 2010-03-01 22:46:24

1

C#中的「using x = int」有效地用於告訴編譯器在所有「x」的聲明中替換查找&,並將其替換爲「int」的某些內容,如Eric Lippert answered on another question最近(他的博客,http://blogs.msdn.com/ericlippert/非常值得添加到您的閱讀清單!)。

到目前爲止,最簡單的方法就是繼承Foo1和Foo2類,並對每個類都做出評論,解釋爲什麼你已經完成了你所做的事情(所以當你離開時支持代碼的人,如果它沒有改變!),我會說這是一個工作:)

相關問題