private MemberCacheDescriptor ToDescriptor(Filter filter) { var result = new MemberCacheDescriptor(); switch (filter.FilterBy) { case FilterBy.BindingFlags: result.BindingFlags = filter.BindingFlags; break; case FilterBy.Name: result.Name = filter.Name; break; case FilterBy.Type: result.Type = filter.Type; break; case FilterBy.MemberType: result.MemberTypes = filter.MemberTypes; break; default: throw new ArgumentOutOfRangeException(); } return result; }
private void ProcessCondition(FilterExpression filterExpression, FilterGroup root) { var filter = new Filter(); root.Filters.Push(filter); filter.FilterExpression = filterExpression; }