System.Runtime.Serialization.FormatterServices.GetSerializableMembers C# (CSharp) Method

GetSerializableMembers() public static method

public static GetSerializableMembers ( Type type ) : System.Reflection.MemberInfo[]
type System.Type
return System.Reflection.MemberInfo[]
        public static MemberInfo[] GetSerializableMembers(Type type)
        {
            return GetSerializableMembers(type, new StreamingContext(StreamingContextStates.All));
        }

Same methods

FormatterServices::GetSerializableMembers ( Type type, StreamingContext context ) : System.Reflection.MemberInfo[]
FormatterServices::GetSerializableMembers ( System type ) : System.Reflection.MemberInfo[]
FormatterServices::GetSerializableMembers ( System type, System context ) : System.Reflection.MemberInfo[]

Usage Example

コード例 #1
0
        // Token: 0x0600506D RID: 20589 RVA: 0x0011A9FC File Offset: 0x00118BFC
        private static MemberInfo[] InternalGetSerializableMembers(RuntimeType type)
        {
            if (type.IsInterface)
            {
                return(new MemberInfo[0]);
            }
            if (!FormatterServices.CheckSerializable(type))
            {
                throw new SerializationException(Environment.GetResourceString("Serialization_NonSerType", new object[]
                {
                    type.FullName,
                    type.Module.Assembly.FullName
                }));
            }
            MemberInfo[] array       = FormatterServices.GetSerializableMembers(type);
            RuntimeType  runtimeType = (RuntimeType)type.BaseType;

            if (runtimeType != null && runtimeType != (RuntimeType)typeof(object))
            {
                RuntimeType[] array2      = null;
                int           num         = 0;
                bool          parentTypes = FormatterServices.GetParentTypes(runtimeType, out array2, out num);
                if (num > 0)
                {
                    List <SerializationFieldInfo> list = new List <SerializationFieldInfo>();
                    for (int i = 0; i < num; i++)
                    {
                        runtimeType = array2[i];
                        if (!FormatterServices.CheckSerializable(runtimeType))
                        {
                            throw new SerializationException(Environment.GetResourceString("Serialization_NonSerType", new object[]
                            {
                                runtimeType.FullName,
                                runtimeType.Module.Assembly.FullName
                            }));
                        }
                        FieldInfo[] fields     = runtimeType.GetFields(BindingFlags.Instance | BindingFlags.NonPublic);
                        string      namePrefix = parentTypes ? runtimeType.Name : runtimeType.FullName;
                        foreach (FieldInfo fieldInfo in fields)
                        {
                            if (!fieldInfo.IsNotSerialized)
                            {
                                list.Add(new SerializationFieldInfo((RuntimeFieldInfo)fieldInfo, namePrefix));
                            }
                        }
                    }
                    if (list != null && list.Count > 0)
                    {
                        MemberInfo[] array4 = new MemberInfo[list.Count + array.Length];
                        Array.Copy(array, array4, array.Length);
                        ((ICollection)list).CopyTo(array4, array.Length);
                        array = array4;
                    }
                }
            }
            return(array);
        }
All Usage Examples Of System.Runtime.Serialization.FormatterServices::GetSerializableMembers