﻿<?xml version="1.0" encoding="utf-8"?><Type Name="IBinarySerialize" FullName="Microsoft.SqlServer.Server.IBinarySerialize"><TypeSignature Language="C#" Value="public interface IBinarySerialize" /><AssemblyInfo><AssemblyName>System.Data</AssemblyName><AssemblyVersion>2.0.0.0</AssemblyVersion></AssemblyInfo><Interfaces /><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>User-defined types (UDTs) and user-defined aggregates are required to define a storage format, which can be either <see cref="T:Microsoft.SqlServer.Server.Format" />.Native or <see cref="T:Microsoft.SqlServer.Server.Format" />.UserDefined.</para><para><see cref="T:Microsoft.SqlServer.Server.Format" />.Native allows SQL Server to handle serialization and deserialization automatically, but the format has restrictions on the kind of types it can handle. <see cref="T:Microsoft.SqlServer.Server.Format" />.UserDefined allows user-defined types and aggregates to handle their own serialization. User-defined types and aggregates must be marked with <see cref="T:Microsoft.SqlServer.Server.Format" />.UserDefined in the SqlUserDefinedType or SqlUserDefinedAggregate attribute, and must implement the <see cref="T:Microsoft.SqlServer.Server.IBinarySerialize" /> interface.</para><para>Note that even with custom serialization, the total size of each instance must be under the maximum allowed limit, currently 8000 bytes.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Provides custom implementation for user-defined type (UDT) and user-defined aggregate serialization and deserialization.</para></summary></Docs><Members><Member MemberName="Read"><MemberSignature Language="C#" Value="public void Read (System.IO.BinaryReader r);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="r" Type="System.IO.BinaryReader" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:Microsoft.SqlServer.Server.IBinarySerialize.Read(System.IO.BinaryReader)" /> method must reconstitute your object using the information written by the <see cref="M:Microsoft.SqlServer.Server.IBinarySerialize.Write(System.IO.BinaryWriter)" /> method.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Generates a user-defined type (UDT) or user-defined aggregate from its binary form.</para></summary><param name="r"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.IO.BinaryReader" /> stream from which the object is deserialized.</param></Docs><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Write"><MemberSignature Language="C#" Value="public void Write (System.IO.BinaryWriter r);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="r" Type="System.IO.BinaryWriter" /></Parameters><Docs><param name="r">To be added.</param><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Write sufficient information to the binary stream to allow the <see cref="M:Microsoft.SqlServer.Server.IBinarySerialize.Read(System.IO.BinaryReader)" /> method to reconstitute your UDT or user-defined aggregate.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Converts a user-defined type (UDT) or user-defined aggregate into its binary format so that it may be persisted.</para></summary></Docs><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion></AssemblyInfo></Member></Members></Type>