这是我想达到的。然而,在经过一天半的时间后,我几乎相信它是不可能完成的。如果有人能告诉我如何做到这一点,我会很感激。家长共享方法从孩子中提取信息并生成孩子?
我有一个.NET父类父与共享方法Fetch()。提取可以采用各种参数来帮助它知道要提取哪些特定记录,但目前这并不相关。
Fetch()需要知道要查找哪个表以查找其后的记录。对于继承Parent的每个子类,该表是不同的。我想将表名保存在一个属于Child类属性的字符串中。然后,每个Child都可以提供自己的表名,Parent可以处理所有这些都以相同方式工作的Fetching。
一旦它执行查询,Fetch()应该有一个DataReader。所有Child类都有一个构造函数,它可以接收DataReader作为参数,并使用它来生成一个由读者填充属性的实例。
我必须强调一件事: Fetch是一种共享方法。如果我从头开始设计它,我可能不会那么做,但是因为它是我重构了一些绝对的代码,他们去了并且建立了一些绝对的代码(他可能是或者可能不是我2年前)使用Fetch()作为每个Child类的一个共享方法的项目(或者说,我希望将这个类作为这个新Parent的子类),并且确实很好,不必更改那些项目到实例。
编辑: 我正在运行到具体的是,我无法弄清楚如何获得表名入取(),也不知道怎样去确定,以调用其上所产生的DataReader的构造函数的子类。
因此,要回顾:
- 家长共用fetch()方法
- 方法在Child.Fetch称为()
- 家长会从子表信息
- 取()知道Child的类名,所以它可以用它读取的DataReader调用构造函数。
可以这样做吗?非常感谢。
Ryan,可以做些什么?关键点在哪里? – 2010-07-15 21:39:59
嘿,好问题:所以我发现当我在Fetch()里面的时候,我找不到一种方法从Child中取出表名,这样我就可以从正确的位置获取数据,我也不能确定类孩子。我怀疑这是因为在Shared方法和实例方法中可以做什么的限制。现在有道理吗? – Blumer 2010-07-15 21:45:28