public virtual IEnumerator GetEnumerator() {
EnsurePropsOwned();
// we can only return an enumerator on the props we actually have...
if (properties.Length != this.propCount) {
PropertyDescriptor[] enumProps = new PropertyDescriptor[propCount];
Array.Copy(properties, 0, enumProps, 0, propCount);
return enumProps.GetEnumerator();
}
return properties.GetEnumerator();
}