我有一組我無法觸及的類對象。他們都有一個ID屬性,我想以通用的方式訪問其他功能。創建多對一的關係
爲了簡單起見,這裏是我的問題的一個例子。
class Example1 {
int ID { get; set;}
}
class Example2 {
int ID { get; set; }
}
我不能夠編輯這兩種類別或他們是在圖書館。
我也有一個期望中的標識可以來自Example1
或Example2
功能。爲了解決這個問題,我提出了一些解決方案,但很好奇,解決這個問題的正確方法是什麼。
我能:
- 使用動態類以訪問各種類的ID。
- 使用反射從任何給定類型拉出ID參數。
- 通過創建一個新的類使用一個奇怪的繼承,以便
Example1ViewModel : Example1, IIdentifiableObject
,然後期望在我的功能IIdentifiableObject
和實施一個拷貝構造函數中Example1ViewModel
處理採集數據 - 寫一個單獨的過濾功能,可以從中提取出相關零件無論是上課還是提供結果。
這些解決方案對我來說都不是特別好。我應該如何在代碼中處理這樣的多對一關係,並且C#提供了哪些工具來處理這個問題?對於類
public static class MyExtensions
{
public static int GetId(this Example1 ex)
{
return ex.Id;
}
public static int GetId(this Example2 ex)
{
return ex.Id;
}
}
你可以添加一個擴展方法到類Example1,Example2嗎? –