任何人都可以提供一個真正的生活senario哪裏類型轉發使用?類型轉發
Q
類型轉發
5
A
回答
7
的BCL庫共同使用TypeForwardedTo
屬性時不同版本的框架的移動組件之間的類型。例如,Func<>
樣式委託從3.5框架中的System.Core移動到4.0框架中的mscorlib。
可以查看真實的世界由4.0反彙編,雙擊清單節點上打開System.Core.dll並尋找所有類似下面的
.class extern forwarder System.Func`1
{
.assembly extern mscorlib
}
.class extern forwarder System.Func`2
{
.assembly extern mscorlib
}
.class extern forwarder System.Func`3
{
.assembly extern mscorlib
}
5
從msdn:
例如,假設一個應用程序使用的實施例類在名爲Utility.dll的組件。 Utility.dll的開發人員可能會決定重構該程序集,並且在此過程中他們可能會將Example類移至另一個程序集。如果舊版本的Utility.dll被替換爲新版本的Utility.dll及其配套程序集,則使用Example類的應用程序將失敗,因爲它無法在新版本的Utility.dll中找到Example類。
Utility.dll的開發人員可以通過使用TypeForwardedToAttribute屬性轉發對Example類的請求來避免此情況。如果該屬性已應用於新版本的Utility.dll,則將Example類的請求轉發給現在包含該類的程序集。現有應用程序繼續正常運行,無需重新編譯。
0
一般來說,它似乎允許您的庫類更靈活/重構能力。我發現MSDN博客上的文章很有幫助。在這篇文章中,其中一個例子顯示了一個現有的庫被拆分成2個獨立的DLL,其中使用這些庫的應用程序不必關心類型是否由於類型轉發而在新版本的dll中移動到不同的dll。
相關問題
- 1. .Net中的類型轉發:轉發的類是否需要繼承Type類?
- 2. 得到模板類型轉發的類型,而不是爭論
- 3. 容器/類型名轉發的遞歸模板類型
- 4. 調度之前類型轉換髮生
- 5. 轉發類型如何適用於IoC?
- 6. 轉發不同類型的事件
- 7. 如何轉發聲明CoreFoundation類型?
- 8. 發生了哪些類型轉換?
- 9. 如何正確轉發Invocable類型
- 10. Java是否支持類型轉發?
- 11. 類型轉換類
- 12. 類型轉換泛型類型C++
- 13. 轉換類型
- 14. 類型轉換
- 15. 類型轉換++
- 16. 轉換類型
- 17. 類型轉換++
- 18. 類型轉換()
- 19. 轉換類型
- 20. 轉換類型
- 21. 類型轉換
- 22. 字符串轉換類型類類型
- 23. 類類型轉換:爲什麼類型轉換功能不叫
- 24. 觸發類型
- 25. 類型發出
- 26. 泛型類型轉換
- 27. Java泛型類型轉換
- 28. 泛型類型轉換
- 29. 泛型和類型轉換
- 30. 如何在非泛型類型上實現完美轉發?
很好的例子線使用了這一點。現在如果只有WCF解析器會尊重'TypeForwardedToAttribute' ;-p – 2009-11-16 22:07:20