我有四个不同的业务对象,每个调用其相应的FillBusinessObject方法来逐个填充所有单个对象属性。现在我想创建一个应该能够填充每种类型的业务对象的通用方法。我创建了一个基类,所有业务对象都从这个基类继承,但我无法弄清楚如何从一个通用方法填充单个对象属性。如何从单一方法填充多种类型的业务对象?
这是可能的(如果是的话,那么如何)还是我在梦幻世界?
P.S.我不希望采用像LINQ这样的其他路线。
我有四个不同的业务对象,每个调用其相应的FillBusinessObject方法来逐个填充所有单个对象属性。现在我想创建一个应该能够填充每种类型的业务对象的通用方法。我创建了一个基类,所有业务对象都从这个基类继承,但我无法弄清楚如何从一个通用方法填充单个对象属性。如何从单一方法填充多种类型的业务对象?
这是可能的(如果是的话,那么如何)还是我在梦幻世界?
P.S.我不希望采用像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;
}
}
}
}
^^和Henk说的不一样吗? – Dienekes 2010-07-23 17:54:36
你有没有想过像Autofac或ninject librbaries? 只有当您从另一个模型/对象填充模型/对象时,这才会起作用。 – Ahuman 2014-12-19 14:16:09