我有四個不同的業務對象,每個調用其相應的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