FieldDefinition [] GetFields (TypeDefinition type) {
ArrayList list = new ArrayList ();
var fields = type.Fields;
foreach (FieldDefinition field in fields) {
if (field.IsSpecialName)
continue;
if (Driver.AbiMode && field.IsStatic)
continue;
// we're only interested in public or protected members
FieldAttributes maskedVisibility = (field.Attributes & FieldAttributes.FieldAccessMask);
if (Driver.AbiMode && !field.IsNotSerialized) {
list.Add (field);
} else {
if (maskedVisibility == FieldAttributes.Public
|| maskedVisibility == FieldAttributes.Family
|| maskedVisibility == FieldAttributes.FamORAssem) {
list.Add (field);
}
}
}
return (FieldDefinition []) list.ToArray (typeof (FieldDefinition));
}