public GetFieldsAndProperties ( |
||
type | ||
flags | BindingFlags | |
Résultat | IEnumerable |
void IncludeByTypeImplementation <TTarget>(params Type[] types) { PreConditionToAdd <TTarget>(Strategy.Includer); var helper = new HarvestHelper(); // we evaluate outside of the usage in the lambda to prevent multiple calls to GetFieldsAndProperties() var cachedList = new List <SanitizedFieldInfo>(); foreach (var type in types) { cachedList.AddRange(helper.GetFieldsAndProperties(type)); } includers.Add(new Implementation(typeof(TTarget), x => cachedList)); }
void ExcludeByTypeImplementation <TTarget>(params Type[] types) { PreConditionToAdd <TTarget>(Strategy.Excluder); var helper = new HarvestHelper(); // we evaluate outside of the usage in the lambda to prevent multiple calls to GetFieldsAndProperties() var cachedList = new List <string>(); foreach (var type in types) { cachedList.AddRange(helper.GetFieldsAndProperties(type).Select(x => x.SanitizedName)); } excluders.Add(new Implementation(typeof(TTarget), x => x.Where(y => !cachedList.Contains(y.SanitizedName)))); }
/// <summary> /// We ignore all properties as they, in the end, will only point to some computed state or other fields. /// Hence they do not provide information about the actual state of the object. /// </summary> public List <SanitizedFieldInfo> GetFields(Type type) { return(harvestHelper.GetFieldsAndProperties(type)); }