1

我有四个不同的业务对象,每个对象都调用其对应的 FillBusinessObject 方法来一一填充所有单独的对象属性。现在我希望创建一个应该能够填充每种类型的业务对象的通用方法。我创建了一个基类,所有业务对象都从该基类继承,但我无法弄清楚如何从通用方法中填充单个对象属性。

这可能(如果是,那么如何)还是我在梦境中?

PS我不希望像LINQ那样采取不同的路线。

4

2 回答 2

1

看起来你把事情复杂化了。

您可以编写一个方法来填充属于公共基类的部分,然后为每种类型调用一个专门的方法。

于 2010-07-22T18:38:50.833 回答
0

像这样的东西怎么样:

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;
            }
        }
    }
}
于 2010-07-22T22:39:38.030 回答