我期待創建擴展類,將實體框架實體擴展到EF實體。我也想在擴展方法類(使用T4)中編寫一些附加/泛型方法,然後有能力使用其他自定義方法創建部分擴展方法類。這可能嗎。C#:是否有可能有部分擴展類
1
A
回答
3
你不需要它們。只需寫另一個擴展類。
namespace Namespace1
{
public static class MyEntityBlibblingExtensions
{
public void Blibble(this MyEntity self)
{
// ...
}
}
}
然後,在別處......
namespace Namespace2
{
public static class MyEntityFurtlingExtensions
{
public void Furtle(this MyEntity self)
{
// ...
}
}
}
任何進口Namespace1
會看到擴展方法Blibble()
而任何進口Namespace2
會看到Furtle()
,和進口都將看到這兩個。它們可以位於不同的程序集或任何導入MyEntity
命名空間的位置。所以,部分擴展並不是一個真正有效的概念。實際上,將擴展方法放在類中的想法有點像黑客一樣 - 他們不能屈服於C#的規則,以使擴展方法能夠在類之外生存。
2
2
我在這裏可以看到的主要問題是短語「在不同的集會」。如果不是這樣的話,你可以添加你的方法等在一個額外partial class
與常規實例方法,這一切都會好起來的。
您可以具有靜態部分類,但是不能使用部分類添加到另一個部件中的類型。擴展方法可以從部分類正常工作,但請注意,部分類純粹是用於在不同文件之間分割代碼的機制。你可以像擴展方法一樣容易地擁有多個靜態類。
相關問題
- 1. 是否有可能擴展一個庫類擴展MY_Controller類
- 2. 是否有可能知道一個類是否被擴展方法擴展?
- 3. 是否有可能具有部分類的部分xaml?
- 4. 是否有可能在PHP擴展中有多個類?
- 5. C# - 是否有可能擴展一個新的接口現有的內置類
- 6. 是否有可能在本地擴展chrome擴展中的css?
- 7. 是否有可能將CSS列擴展到其父項底部
- 8. 是否有可能評估類接口是否擴展某個基類?
- 9. 是否有可能在c#中創建擴展字段?
- 10. 是否有可能在ruby C擴展中使用rb_cIPSocket
- 11. 是否有可能讓CSS類互相擴展?
- 12. 是否有可能在ExpressionEngine 2中擴展類別
- 13. 是否有可能擴展超過一個抽象類?
- 14. 是否有可能獲得擴展類加載器對象?
- 15. C++的value_type是否可以從iterator_traits擴展到所有類型?
- 16. 是否可以擴展類
- 17. 是否有可能從部分類型生成嚴格類型?
- 18. LESS是否具有「擴展」功能?
- 19. C++中是否有擴展套接字?
- 20. 是否有類似於SMS的擴展?
- 21. 是否可以擴展現有的TypeConverter?
- 22. 是否有可能擴展一個具有相同名稱的Java類
- 23. 是否有可能在Java中擴展迭代器的功能?
- 24. 是否有可能#include在C++類中?
- 25. 是否有可能在page擴展的chrome擴展中設置BadgeText?
- 26. 是否有可能?(C++)
- 27. 是否有可能在C#中「繼承部分結構」?
- 28. 是否有可能使用MSTest從C++ dll測試「內部」類?
- 29. 是否有可能在C#定義一個局部通用類
- 30. Subversion是否具有類似於「hg record」的功能/擴展?
你試過了什麼?我不清楚你想要做什麼,但是多個擴展類可以擴展相同的原始類,如果這就是你所要求的? –