我有一组我无法触及的类对象。他们都有一个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吗? –