GetFieldsAndProperties() 공개 메소드

Returns all Membertype.Field and Membertype.Property except backing-fields
public GetFieldsAndProperties ( Type type, BindingFlags flags ) : IEnumerable
type System.Type
flags BindingFlags
리턴 IEnumerable
예제 #1
0
        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));
        }
예제 #2
0
        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));
 }