public static void Main(string[] args)
    {
        List <A> alist = new List <A>
        {
            new B(),
            new C(),
            new D()
        };
        PersistenceLayer persistenceLayer = new PersistenceLayer();

        foreach (A a in alist)
        {
            persistenceLayer.Foo(a);
        }
    }