System.Data.DataSet.DeserializeDataSetSchema C# (CSharp) Method

DeserializeDataSetSchema() private method

private DeserializeDataSetSchema ( SerializationInfo info, StreamingContext context, SerializationFormat remotingFormat, SchemaSerializationMode schemaSerializationMode ) : void
info SerializationInfo
context System.Runtime.Serialization.StreamingContext
remotingFormat SerializationFormat
schemaSerializationMode SchemaSerializationMode
return void
        private void DeserializeDataSetSchema(SerializationInfo info, StreamingContext context, SerializationFormat remotingFormat, SchemaSerializationMode schemaSerializationMode)
        {
            if (remotingFormat != SerializationFormat.Xml)
            {
                if (schemaSerializationMode == SchemaSerializationMode.IncludeSchema)
                {
                    //DataSet public state properties
                    DeserializeDataSetProperties(info, context);

                    //Tables Count
                    int tableCount = info.GetInt32("DataSet.Tables.Count");

                    //Tables, Columns, Rows
                    for (int i = 0; i < tableCount; i++)
                    {
                        byte[] buffer = (byte[])info.GetValue(string.Format(CultureInfo.InvariantCulture, "DataSet.Tables_{0}", i), typeof(byte[]));
                        MemoryStream memStream = new MemoryStream(buffer);
                        memStream.Position = 0;
                        BinaryFormatter bf = new BinaryFormatter(null, new StreamingContext(context.State, false));
                        DataTable dt = (DataTable)bf.Deserialize(memStream);
                        Tables.Add(dt);
                    }

                    //Constraints
                    for (int i = 0; i < tableCount; i++)
                    {
                        Tables[i].DeserializeConstraints(info, context,  /* table index */i,  /* serialize all constraints */ true); //
                    }

                    //Relations
                    DeserializeRelations(info, context);

                    //Expression Columns
                    for (int i = 0; i < tableCount; i++)
                    {
                        Tables[i].DeserializeExpressionColumns(info, context, i);
                    }
                }
                else
                {
                    //DeSerialize DataSet public properties.[Locale, CaseSensitive and EnforceConstraints]
                    DeserializeDataSetProperties(info, context);
                }
            }
            else
            {
                string strSchema = (string)info.GetValue(KEY_XMLSCHEMA, typeof(string));

                if (strSchema != null)
                {
                    ReadXmlSchema(new XmlTextReader(new StringReader(strSchema)), true);
                }
            }
        }