Exemple #1
0
        private static void GetChildPrivateFields(IList <MemberInfo> initialFields, Type targetType, PlayFab.Json.Utilities.BindingFlags bindingAttr)
        {
            // fix weirdness with private FieldInfos only being returned for the current Type
            // find base type fields and add them to result
            if ((bindingAttr & PlayFab.Json.Utilities.BindingFlags.NonPublic) != 0)
            {
                // modify flags to not search for public fields
                PlayFab.Json.Utilities.BindingFlags nonPublicBindingAttr = bindingAttr.RemoveFlag(PlayFab.Json.Utilities.BindingFlags.Public);

                while ((targetType = targetType.BaseType()) != null)
                {
                    // filter out protected fields
                    IEnumerable <MemberInfo> childPrivateFields =
                        targetType.GetFields(nonPublicBindingAttr).Where(f => f.IsPrivate).Cast <MemberInfo>();

                    initialFields.AddRange(childPrivateFields);
                }
            }
        }