See the question and my original answer on StackOverflow

Yes, these arrays will not get through from NET to VBScript as they are not COM automation compatible.

What you can do, though, is create a partial class with the same name as the initial one, duplicate the array properties, give them another name, and declare them as a type that can be used in automation (and recompile the whole thing). You could create a custom type (it's necessary if yuo don't want to duplicate the values), but the easiest way to do it is to reuse the "old" ArrayList class. It's marked as COM visible and it can be used easily from a script language.

So here is a sample partial add-on:

public partial class ProductDefinition
{
    [XmlIgnore]
    public ArrayList ruleSetArrayList
    {
        get
        {
            return new ArrayList(ruleSet);
        }
    }     
}

And the script that uses it:

Set xxx = objAppEntry.productDefinition.ruleSetArrayList
for each item in xxx
    WScript.echo item.phase
next