AddElementTypes() static private method

static private AddElementTypes ( SerializationInfo info, Type type ) : Type
info System.Runtime.Serialization.SerializationInfo
type Type
return Type
コード例 #1
0
        // Token: 0x06001560 RID: 5472 RVA: 0x0003E6C0 File Offset: 0x0003C8C0
        internal static void GetUnitySerializationInfo(SerializationInfo info, RuntimeType type)
        {
            if (type.GetRootElementType().IsGenericParameter)
            {
                type = UnitySerializationHolder.AddElementTypes(info, type);
                info.SetType(typeof(UnitySerializationHolder));
                info.AddValue("UnityType", 7);
                info.AddValue("GenericParameterPosition", type.GenericParameterPosition);
                info.AddValue("DeclaringMethod", type.DeclaringMethod, typeof(MethodBase));
                info.AddValue("DeclaringType", type.DeclaringType, typeof(Type));
                return;
            }
            int unityType = 4;

            if (!type.IsGenericTypeDefinition && type.ContainsGenericParameters)
            {
                unityType = 8;
                type      = UnitySerializationHolder.AddElementTypes(info, type);
                info.AddValue("GenericArguments", type.GetGenericArguments(), typeof(Type[]));
                type = (RuntimeType)type.GetGenericTypeDefinition();
            }
            UnitySerializationHolder.GetUnitySerializationInfo(info, unityType, type.FullName, type.GetRuntimeAssembly());
        }