我有四个不同的业务对象,每个对象都调用其对应的 FillBusinessObject 方法来一一填充所有单独的对象属性。现在我希望创建一个应该能够填充每种类型的业务对象的通用方法。我创建了一个基类,所有业务对象都从该基类继承,但我无法弄清楚如何从通用方法中填充单个对象属性。
这可能(如果是,那么如何)还是我在梦境中?
PS我不希望像LINQ那样采取不同的路线。
我有四个不同的业务对象,每个对象都调用其对应的 FillBusinessObject 方法来一一填充所有单独的对象属性。现在我希望创建一个应该能够填充每种类型的业务对象的通用方法。我创建了一个基类,所有业务对象都从该基类继承,但我无法弄清楚如何从通用方法中填充单个对象属性。
这可能(如果是,那么如何)还是我在梦境中?
PS我不希望像LINQ那样采取不同的路线。
看起来你把事情复杂化了。
您可以编写一个方法来填充属于公共基类的部分,然后为每种类型调用一个专门的方法。
像这样的东西怎么样:
namespace ConsoleApplication1
{
class Program
{
static void Main( string[] args )
{
// Create some business objects and ask them to initialize
// themselves.
//
var bo1 = new BusinessObject1();
var bo2 = new BusinessObject2();
bo1.Fill();
bo2.Fill();
}
public abstract class BusinessObjectBase
{
public int x { get; private set; }
public virtual void Fill()
{
x = 123;
}
}
public class BusinessObject1 : BusinessObjectBase
{
public int y { get; private set; }
public override void Fill()
{
// Let base class fill itself.
base.Fill();
// Now we fill our own properties.
this.y = 456;
}
}
public class BusinessObject2 : BusinessObjectBase
{
public int z { get; private set; }
public override void Fill()
{
// Let base class fill itself.
base.Fill();
// Now we fill our own properties.
this.z = 456;
}
}
}
}