See the question and my original answer on StackOverflow

You need to return a class that's ComVisible (and enumerable), for example, this:

public Array Bars()
{
    return bars;
}

or an ArrayList, something like this:

public ArrayList Bars()
{
    ArrayList list = new ArrayList();
    // etc...
    return list;
}

or if you don't like ArrayList, something like this:

public BarList Bars()
{
    BarList list = new BarList();
    // etc...
    return list;
}

[ComVisible(true)]
public class BarList : List<Bar>
{
}