void GetNamedValues(ExpressionPairCollection values,
out PropertyInfo[] outNamedProperties,
out object[] outPropertyValues,
out FieldInfo[] outNamedFields,
out object[] outFieldValues)
{
List namedProperties = new List();
List propertyValues = new List();
List namedFields = new List();
List fieldValues = new List();
foreach (ExpressionPair pair in values)
{
ITypedEntity entity = (ITypedEntity)GetEntity(pair.First);
object value = GetValue(entity.Type, pair.Second);
if (EntityType.Property == entity.EntityType)
{
namedProperties.Add(GetPropertyInfo(entity));
propertyValues.Add(value);
}
else
{
namedFields.Add(GetFieldInfo((IField)entity));
fieldValues.Add(value);
}
}
outNamedProperties = (PropertyInfo[])namedProperties.ToArray(typeof(PropertyInfo));
outPropertyValues = propertyValues.ToArray();
outNamedFields = (FieldInfo[])namedFields.ToArray(typeof(FieldInfo));
outFieldValues = fieldValues.ToArray();
}