Merge pull request #920
[mono.git] / mcs / class / corlib / Documentation / en / System.Runtime.Serialization.Formatters.Binary / BinaryFormatter.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <Type Name="BinaryFormatter" FullName="System.Runtime.Serialization.Formatters.Binary.BinaryFormatter">
3   <TypeSignature Maintainer="auto" Language="C#" Value="public sealed class BinaryFormatter : System.Runtime.Remoting.Messaging.IRemotingFormatter" />
4   <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed beforefieldinit BinaryFormatter extends System.Object implements class System.Runtime.Remoting.Messaging.IRemotingFormatter, class System.Runtime.Serialization.IFormatter" />
5   <AssemblyInfo>
6     <AssemblyName>mscorlib</AssemblyName>
7     <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey>
8     <AssemblyVersion>1.0.5000.0</AssemblyVersion>
9     <AssemblyVersion>2.0.0.0</AssemblyVersion>
10     <AssemblyVersion>4.0.0.0</AssemblyVersion>
11   </AssemblyInfo>
12   <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement>
13   <Base>
14     <BaseTypeName>System.Object</BaseTypeName>
15   </Base>
16   <Interfaces>
17     <Interface>
18       <InterfaceName>System.Runtime.Remoting.Messaging.IRemotingFormatter</InterfaceName>
19     </Interface>
20   </Interfaces>
21   <Attributes>
22     <Attribute>
23       <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
24     </Attribute>
25   </Attributes>
26   <Docs>
27     <remarks>
28       <attribution license="cc4" from="Microsoft" modified="false" />
29       <para>The <see cref="T:System.Runtime.Serialization.Formatters.Soap.SoapFormatter" /> and <see cref="T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter" /> classes implement the <see cref="T:System.Runtime.Remoting.Messaging.IRemotingFormatter" /> interface to support remote procedure calls (RPCs), and the <see cref="T:System.Runtime.Serialization.IFormatter" /> interface (inherited by the <see cref="T:System.Runtime.Remoting.Messaging.IRemotingFormatter" />) to support serialization of a graph of objects. The <see cref="T:System.Runtime.Serialization.Formatters.Soap.SoapFormatter" /> class also supports RPCs with <see cref="T:System.Runtime.Serialization.Formatters.ISoapMessage" /> objects, without using the <see cref="T:System.Runtime.Remoting.Messaging.IRemotingFormatter" /> functionality.</para>
30       <para>During RPCs, the <see cref="T:System.Runtime.Remoting.Messaging.IRemotingFormatter" /> interface allows the specification of two separate object graphs: the graph of objects to serialize, and an additional graph that contains an array of header objects that convey information about the remote function call (for example, transaction ID or a method signature).</para>
31       <para>RPCs that use the <see cref="T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter" /> separate into two distinct parts: method calls, which are sent to the server with the remote object that contains the method called, and method responses, which are sent from the server to the client with the status and response information from the called method.</para>
32       <para>During serialization of a method call the first object of the object graph must support the <see cref="T:System.Runtime.Remoting.Messaging.IMethodCallMessage" /> interface. To deserialize a method call, use the <see cref="M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(System.IO.Stream)" /> method with the <see cref="T:System.Runtime.Remoting.Messaging.HeaderHandler" /> parameter. The remoting infrastructure uses the <see cref="T:System.Runtime.Remoting.Messaging.HeaderHandler" /> delegate to produce an object that supports the <see cref="T:System.Runtime.Serialization.ISerializable" /> interface. When the <see cref="T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter" /> invokes the <see cref="T:System.Runtime.Remoting.Messaging.HeaderHandler" /> delegate, it returns the URI of the remote object with the method that is being called. The first object in the graph returned supports the <see cref="T:System.Runtime.Remoting.Messaging.IMethodCallMessage" /> interface.</para>
33       <para>The serialization procedure for a method response is identical to that of a method call, except the first object of the object graph must support the <see cref="T:System.Runtime.Remoting.Messaging.IMethodReturnMessage" /> interface. To deserialize a method response, use the <see cref="M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.DeserializeMethodResponse(System.IO.Stream,System.Runtime.Remoting.Messaging.HeaderHandler,System.Runtime.Remoting.Messaging.IMethodCallMessage)" /> method. To save time, details about the caller object are not sent to the remote object during the method call. These details are instead obtained from the original method call, which is passed to the <see cref="M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.DeserializeMethodResponse(System.IO.Stream,System.Runtime.Remoting.Messaging.HeaderHandler,System.Runtime.Remoting.Messaging.IMethodCallMessage)" /> method in the <see cref="T:System.Runtime.Remoting.Messaging.IMethodCallMessage" /> parameter. The first object in the graph returned by the <see cref="M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.DeserializeMethodResponse(System.IO.Stream,System.Runtime.Remoting.Messaging.HeaderHandler,System.Runtime.Remoting.Messaging.IMethodCallMessage)" /> method supports the <see cref="T:System.Runtime.Remoting.Messaging.IMethodReturnMessage" /> interface.</para>
34       <format type="text/html">
35         <h2>Unpaired Surrogates</h2>
36       </format>
37       <para>Any unpaired surrogate characters are lost in binary serialization. For example, the following string contains a high surrogate Unicode character (\ud800) in between the two Test words:</para>
38       <para>Test\ud800Test</para>
39       <para>Before serialization, the byte array of the string is as follows:</para>
40       <list type="table">
41         <listheader>
42           <item>
43             <term>
44               <para>Byte Array Value</para>
45             </term>
46             <description>
47               <para>Character</para>
48             </description>
49           </item>
50         </listheader>
51         <item>
52           <term>
53             <para>84</para>
54           </term>
55           <description>
56             <para>T</para>
57           </description>
58         </item>
59         <item>
60           <term>
61             <para>101</para>
62           </term>
63           <description>
64             <para>e</para>
65           </description>
66         </item>
67         <item>
68           <term>
69             <para>115</para>
70           </term>
71           <description>
72             <para>s</para>
73           </description>
74         </item>
75         <item>
76           <term>
77             <para>116</para>
78           </term>
79           <description>
80             <para>t</para>
81           </description>
82         </item>
83         <item>
84           <term>
85             <para>55296</para>
86           </term>
87           <description>
88             <para>\ud800</para>
89           </description>
90         </item>
91         <item>
92           <term>
93             <para>84</para>
94           </term>
95           <description>
96             <para>T</para>
97           </description>
98         </item>
99         <item>
100           <term>
101             <para>101</para>
102           </term>
103           <description>
104             <para>e</para>
105           </description>
106         </item>
107         <item>
108           <term>
109             <para>115</para>
110           </term>
111           <description>
112             <para>s</para>
113           </description>
114         </item>
115         <item>
116           <term>
117             <para>116</para>
118           </term>
119           <description>
120             <para>t</para>
121           </description>
122         </item>
123       </list>
124       <para>After deserialization, the high surrogate Unicode character is lost:</para>
125       <list type="table">
126         <listheader>
127           <item>
128             <term>
129               <para>Byte Array Value</para>
130             </term>
131             <description>
132               <para>Character</para>
133             </description>
134           </item>
135         </listheader>
136         <item>
137           <term>
138             <para>84</para>
139           </term>
140           <description>
141             <para>T</para>
142           </description>
143         </item>
144         <item>
145           <term>
146             <para>101</para>
147           </term>
148           <description>
149             <para>e</para>
150           </description>
151         </item>
152         <item>
153           <term>
154             <para>115</para>
155           </term>
156           <description>
157             <para>s</para>
158           </description>
159         </item>
160         <item>
161           <term>
162             <para>116</para>
163           </term>
164           <description>
165             <para>t</para>
166           </description>
167         </item>
168         <item>
169           <term>
170             <para>84</para>
171           </term>
172           <description>
173             <para>T</para>
174           </description>
175         </item>
176         <item>
177           <term>
178             <para>101</para>
179           </term>
180           <description>
181             <para>e</para>
182           </description>
183         </item>
184         <item>
185           <term>
186             <para>115</para>
187           </term>
188           <description>
189             <para>s</para>
190           </description>
191         </item>
192         <item>
193           <term>
194             <para>116</para>
195           </term>
196           <description>
197             <para>t</para>
198           </description>
199         </item>
200       </list>
201     </remarks>
202     <summary>
203       <attribution license="cc4" from="Microsoft" modified="false" />
204       <para>Serializes and deserializes an object, or an entire graph of connected objects, in binary format.</para>
205     </summary>
206   </Docs>
207   <Members>
208     <Member MemberName=".ctor">
209       <MemberSignature Language="C#" Value="public BinaryFormatter ();" />
210       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
211       <MemberType>Constructor</MemberType>
212       <AssemblyInfo>
213         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
214         <AssemblyVersion>2.0.0.0</AssemblyVersion>
215         <AssemblyVersion>4.0.0.0</AssemblyVersion>
216       </AssemblyInfo>
217       <ReturnValue />
218       <Parameters />
219       <Docs>
220         <remarks>
221           <attribution license="cc4" from="Microsoft" modified="false" />
222           <para>This constructor sets the properties of the <see cref="T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter" /> object as follows: </para>
223           <list type="table">
224             <listheader>
225               <item>
226                 <term>
227                   <para>Property Type </para>
228                 </term>
229                 <description>
230                   <para>Condition </para>
231                 </description>
232               </item>
233             </listheader>
234             <item>
235               <term>
236                 <para>
237                   <see cref="P:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.SurrogateSelector" /> </para>
238               </term>
239               <description>
240                 <para>null</para>
241               </description>
242             </item>
243             <item>
244               <term>
245                 <para>
246                   <see cref="P:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Context" /> </para>
247               </term>
248               <description>
249                 <para>A <see cref="T:System.Runtime.Serialization.StreamingContext" /> with a value that indicates that serialized data can be transmitted to or received from any of the other contexts. (<see cref="F:System.Runtime.Serialization.StreamingContextStates.All" />) </para>
250               </description>
251             </item>
252           </list>
253         </remarks>
254         <summary>
255           <attribution license="cc4" from="Microsoft" modified="false" />
256           <para>Initializes a new instance of the <see cref="T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter" /> class with default values.</para>
257         </summary>
258       </Docs>
259     </Member>
260     <Member MemberName=".ctor">
261       <MemberSignature Language="C#" Value="public BinaryFormatter (System.Runtime.Serialization.ISurrogateSelector selector, System.Runtime.Serialization.StreamingContext context);" />
262       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Runtime.Serialization.ISurrogateSelector selector, valuetype System.Runtime.Serialization.StreamingContext context) cil managed" />
263       <MemberType>Constructor</MemberType>
264       <AssemblyInfo>
265         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
266         <AssemblyVersion>2.0.0.0</AssemblyVersion>
267         <AssemblyVersion>4.0.0.0</AssemblyVersion>
268       </AssemblyInfo>
269       <ReturnValue />
270       <Parameters>
271         <Parameter Name="selector" Type="System.Runtime.Serialization.ISurrogateSelector" />
272         <Parameter Name="context" Type="System.Runtime.Serialization.StreamingContext" />
273       </Parameters>
274       <Docs>
275         <remarks>
276           <attribution license="cc4" from="Microsoft" modified="false" />
277           <para>Initializes a new BinaryFormatter for serialization or deserialization of objects from the specified <see cref="T:System.IO.Stream" />.</para>
278           <para>The serialization or deserialization process uses the specified <see cref="T:System.Runtime.Serialization.ISurrogateSelector" /> to search for surrogates that are registered for the object types you want to deserialize. Surrogates are helpers that serialize and deserialize objects of specific classes. The default <see cref="T:System.Runtime.Serialization.ISurrogateSelector" /> cannot handle the serialization of objects that derive from the <see cref="T:System.MarshalByRefObject" /> for remoting purposes. In a remoting situation the specified <see cref="T:System.Runtime.Serialization.ISurrogateSelector" /> replaces the object derived from <see cref="T:System.MarshalByRefObject" /> with a <see cref="T:System.Runtime.Remoting.ObjRef" /> object that is serialized by the specified surrogate selector. Therefore, if you want to use remote objects, set the <paramref name="selector" /> parameter to an instance of <see cref="T:System.Runtime.Remoting.Messaging.RemotingSurrogateSelector" />. If you do not need surrogates, set the <paramref name="selector" /> parameter to be null.</para>
279         </remarks>
280         <summary>
281           <attribution license="cc4" from="Microsoft" modified="false" />
282           <para>Initializes a new instance of the <see cref="T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter" /> class with a given surrogate selector and streaming context.</para>
283         </summary>
284         <param name="selector">
285           <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Serialization.ISurrogateSelector" /> to use. Can be null. </param>
286         <param name="context">
287           <attribution license="cc4" from="Microsoft" modified="false" />The source and destination for the serialized data. </param>
288       </Docs>
289     </Member>
290     <Member MemberName="AssemblyFormat">
291       <MemberSignature Language="C#" Value="public System.Runtime.Serialization.Formatters.FormatterAssemblyStyle AssemblyFormat { get; set; }" />
292       <MemberSignature Language="ILAsm" Value=".property instance valuetype System.Runtime.Serialization.Formatters.FormatterAssemblyStyle AssemblyFormat" />
293       <MemberType>Property</MemberType>
294       <AssemblyInfo>
295         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
296         <AssemblyVersion>2.0.0.0</AssemblyVersion>
297         <AssemblyVersion>4.0.0.0</AssemblyVersion>
298       </AssemblyInfo>
299       <ReturnValue>
300         <ReturnType>System.Runtime.Serialization.Formatters.FormatterAssemblyStyle</ReturnType>
301       </ReturnValue>
302       <Docs>
303         <value>To be added.</value>
304         <remarks>To be added.</remarks>
305         <summary>
306           <attribution license="cc4" from="Microsoft" modified="false" />
307           <para>Gets or sets the behavior of the deserializer with regards to finding and loading assemblies.</para>
308         </summary>
309       </Docs>
310     </Member>
311     <Member MemberName="Binder">
312       <MemberSignature Language="C#" Value="public System.Runtime.Serialization.SerializationBinder Binder { get; set; }" />
313       <MemberSignature Language="ILAsm" Value=".property instance class System.Runtime.Serialization.SerializationBinder Binder" />
314       <MemberType>Property</MemberType>
315       <AssemblyInfo>
316         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
317         <AssemblyVersion>2.0.0.0</AssemblyVersion>
318         <AssemblyVersion>4.0.0.0</AssemblyVersion>
319       </AssemblyInfo>
320       <ReturnValue>
321         <ReturnType>System.Runtime.Serialization.SerializationBinder</ReturnType>
322       </ReturnValue>
323       <Docs>
324         <value>To be added.</value>
325         <remarks>To be added.</remarks>
326         <summary>
327           <attribution license="cc4" from="Microsoft" modified="false" />
328           <para>Gets or sets an object of type <see cref="T:System.Runtime.Serialization.SerializationBinder" /> that controls the binding of a serialized object to a type.</para>
329         </summary>
330       </Docs>
331     </Member>
332     <Member MemberName="Context">
333       <MemberSignature Language="C#" Value="public System.Runtime.Serialization.StreamingContext Context { get; set; }" />
334       <MemberSignature Language="ILAsm" Value=".property instance valuetype System.Runtime.Serialization.StreamingContext Context" />
335       <MemberType>Property</MemberType>
336       <AssemblyInfo>
337         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
338         <AssemblyVersion>2.0.0.0</AssemblyVersion>
339         <AssemblyVersion>4.0.0.0</AssemblyVersion>
340       </AssemblyInfo>
341       <ReturnValue>
342         <ReturnType>System.Runtime.Serialization.StreamingContext</ReturnType>
343       </ReturnValue>
344       <Docs>
345         <value>To be added.</value>
346         <remarks>
347           <attribution license="cc4" from="Microsoft" modified="false" />
348           <para>The <see cref="T:System.Runtime.Serialization.StreamingContext" /> provides an enumeration that describes the source and the destination for a given serialized stream, as well as a way for serialization to retain that context and an additional caller-defined context.</para>
349         </remarks>
350         <summary>
351           <attribution license="cc4" from="Microsoft" modified="false" />
352           <para>Gets or sets the <see cref="T:System.Runtime.Serialization.StreamingContext" /> for this formatter.</para>
353         </summary>
354       </Docs>
355     </Member>
356     <Member MemberName="Deserialize">
357       <MemberSignature Language="C#" Value="public object Deserialize (System.IO.Stream serializationStream);" />
358       <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance object Deserialize(class System.IO.Stream serializationStream) cil managed" />
359       <MemberType>Method</MemberType>
360       <AssemblyInfo>
361         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
362         <AssemblyVersion>2.0.0.0</AssemblyVersion>
363         <AssemblyVersion>4.0.0.0</AssemblyVersion>
364       </AssemblyInfo>
365       <ReturnValue>
366         <ReturnType>System.Object</ReturnType>
367       </ReturnValue>
368       <Parameters>
369         <Parameter Name="serializationStream" Type="System.IO.Stream" />
370       </Parameters>
371       <Docs>
372         <returns>To be added: an object of type 'object'</returns>
373         <remarks>
374           <attribution license="cc4" from="Microsoft" modified="false" />
375           <para>For successful deserialization, the current position in the stream must be at the beginning of the object graph.</para>
376           <block subset="none" type="note">
377             <para>Calling this method with untrusted data is a security risk. Call this method only with trusted data. For more information, see <see cref="http://go.microsoft.com/fwlink/?LinkId=330378">Untrusted Data Security Risks</see>.</para>
378           </block>
379         </remarks>
380         <summary>
381           <attribution license="cc4" from="Microsoft" modified="false" />
382           <para>Deserializes the specified stream into an object graph.</para>
383         </summary>
384         <param name="serializationStream">
385           <attribution license="cc4" from="Microsoft" modified="false" />The stream from which to deserialize the object graph. </param>
386       </Docs>
387     </Member>
388     <Member MemberName="Deserialize">
389       <MemberSignature Language="C#" Value="public object Deserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler);" />
390       <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance object Deserialize(class System.IO.Stream serializationStream, class System.Runtime.Remoting.Messaging.HeaderHandler handler) cil managed" />
391       <MemberType>Method</MemberType>
392       <AssemblyInfo>
393         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
394         <AssemblyVersion>2.0.0.0</AssemblyVersion>
395         <AssemblyVersion>4.0.0.0</AssemblyVersion>
396       </AssemblyInfo>
397       <ReturnValue>
398         <ReturnType>System.Object</ReturnType>
399       </ReturnValue>
400       <Parameters>
401         <Parameter Name="serializationStream" Type="System.IO.Stream" />
402         <Parameter Name="handler" Type="System.Runtime.Remoting.Messaging.HeaderHandler" />
403       </Parameters>
404       <Docs>
405         <returns>To be added: an object of type 'object'</returns>
406         <remarks>
407           <attribution license="cc4" from="Microsoft" modified="false" />
408           <para>Headers are used only for specific remoting applications.</para>
409           <para>In order for deserialization to succeed the current position in the stream must be at the beginning of the object graph.</para>
410           <block subset="none" type="note">
411             <para>Calling this method with untrusted data is a security risk. Call this method only with trusted data. For more information, see <see cref="http://go.microsoft.com/fwlink/?LinkId=330378">Untrusted Data Security Risks</see>.</para>
412           </block>
413         </remarks>
414         <summary>
415           <attribution license="cc4" from="Microsoft" modified="false" />
416           <para>Deserializes the specified stream into an object graph. The provided <see cref="T:System.Runtime.Remoting.Messaging.HeaderHandler" /> handles any headers in that stream.</para>
417         </summary>
418         <param name="serializationStream">
419           <attribution license="cc4" from="Microsoft" modified="false" />The stream from which to deserialize the object graph. </param>
420         <param name="handler">
421           <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Remoting.Messaging.HeaderHandler" /> that handles any headers in the <paramref name="serializationStream" />. Can be null. </param>
422       </Docs>
423     </Member>
424     <Member MemberName="DeserializeMethodResponse">
425       <MemberSignature Language="C#" Value="public object DeserializeMethodResponse (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler, System.Runtime.Remoting.Messaging.IMethodCallMessage methodCallMessage);" />
426       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance object DeserializeMethodResponse(class System.IO.Stream serializationStream, class System.Runtime.Remoting.Messaging.HeaderHandler handler, class System.Runtime.Remoting.Messaging.IMethodCallMessage methodCallMessage) cil managed" />
427       <MemberType>Method</MemberType>
428       <AssemblyInfo>
429         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
430         <AssemblyVersion>2.0.0.0</AssemblyVersion>
431         <AssemblyVersion>4.0.0.0</AssemblyVersion>
432       </AssemblyInfo>
433       <ReturnValue>
434         <ReturnType>System.Object</ReturnType>
435       </ReturnValue>
436       <Parameters>
437         <Parameter Name="serializationStream" Type="System.IO.Stream" />
438         <Parameter Name="handler" Type="System.Runtime.Remoting.Messaging.HeaderHandler" />
439         <Parameter Name="methodCallMessage" Type="System.Runtime.Remoting.Messaging.IMethodCallMessage" />
440       </Parameters>
441       <Docs>
442         <returns>To be added: an object of type 'object'</returns>
443         <remarks>
444           <attribution license="cc4" from="Microsoft" modified="false" />
445           <para>Details about the caller object are not sent to the remote object during the method call. Instead, these details are obtained from the original method call that is passed to the current method in the <paramref name="methodCallMessage" /> parameter.</para>
446           <para>In order for deserialization to succeed the current position in the stream must be at the beginning of the object graph.</para>
447         </remarks>
448         <summary>
449           <attribution license="cc4" from="Microsoft" modified="false" />
450           <para>Deserializes a response to a remote method call from the provided <see cref="T:System.IO.Stream" />.</para>
451         </summary>
452         <param name="serializationStream">
453           <attribution license="cc4" from="Microsoft" modified="false" />The stream from which to deserialize the object graph. </param>
454         <param name="handler">
455           <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Remoting.Messaging.HeaderHandler" /> that handles any headers in the <paramref name="serializationStream" />. Can be null. </param>
456         <param name="methodCallMessage">
457           <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Remoting.Messaging.IMethodCallMessage" /> that contains details about where the call came from. </param>
458       </Docs>
459     </Member>
460     <Member MemberName="FilterLevel">
461       <MemberSignature Language="C#" Value="public System.Runtime.Serialization.Formatters.TypeFilterLevel FilterLevel { get; set; }" />
462       <MemberSignature Language="ILAsm" Value=".property instance valuetype System.Runtime.Serialization.Formatters.TypeFilterLevel FilterLevel" />
463       <MemberType>Property</MemberType>
464       <AssemblyInfo>
465         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
466         <AssemblyVersion>2.0.0.0</AssemblyVersion>
467         <AssemblyVersion>4.0.0.0</AssemblyVersion>
468       </AssemblyInfo>
469       <ReturnValue>
470         <ReturnType>System.Runtime.Serialization.Formatters.TypeFilterLevel</ReturnType>
471       </ReturnValue>
472       <Docs>
473         <value>To be added.</value>
474         <remarks>
475           <attribution license="cc4" from="Microsoft" modified="false" />
476           <para>Supported values are <see cref="F:System.Runtime.Serialization.Formatters.TypeFilterLevel.Low" /> and <see cref="F:System.Runtime.Serialization.Formatters.TypeFilterLevel.Full" /> (the default). For details about deserialization levels, see <format type="text/html"><a href="313A0E88-5B2B-4A17-8391-0DDF9F7A787B">[&lt;topic://cpconAutomaticDeserializationInNETRemoting&gt;]</a></format>.</para>
477         </remarks>
478         <summary>
479           <attribution license="cc4" from="Microsoft" modified="false" />
480           <para>Gets or sets the <see cref="T:System.Runtime.Serialization.Formatters.TypeFilterLevel" /> of automatic deserialization the <see cref="T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter" /> performs.</para>
481         </summary>
482       </Docs>
483     </Member>
484     <Member MemberName="Serialize">
485       <MemberSignature Language="C#" Value="public void Serialize (System.IO.Stream serializationStream, object graph);" />
486       <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Serialize(class System.IO.Stream serializationStream, object graph) cil managed" />
487       <MemberType>Method</MemberType>
488       <AssemblyInfo>
489         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
490         <AssemblyVersion>2.0.0.0</AssemblyVersion>
491         <AssemblyVersion>4.0.0.0</AssemblyVersion>
492       </AssemblyInfo>
493       <ReturnValue>
494         <ReturnType>System.Void</ReturnType>
495       </ReturnValue>
496       <Parameters>
497         <Parameter Name="serializationStream" Type="System.IO.Stream" />
498         <Parameter Name="graph" Type="System.Object" />
499       </Parameters>
500       <Docs>
501         <remarks>To be added</remarks>
502         <summary>
503           <attribution license="cc4" from="Microsoft" modified="false" />
504           <para>Serializes the object, or graph of objects with the specified top (root), to the given stream.</para>
505         </summary>
506         <param name="serializationStream">
507           <attribution license="cc4" from="Microsoft" modified="false" />The stream to which the graph is to be serialized. </param>
508         <param name="graph">
509           <attribution license="cc4" from="Microsoft" modified="false" />The object at the root of the graph to serialize. </param>
510       </Docs>
511     </Member>
512     <Member MemberName="Serialize">
513       <MemberSignature Language="C#" Value="public void Serialize (System.IO.Stream serializationStream, object graph, System.Runtime.Remoting.Messaging.Header[] headers);" />
514       <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Serialize(class System.IO.Stream serializationStream, object graph, class System.Runtime.Remoting.Messaging.Header[] headers) cil managed" />
515       <MemberType>Method</MemberType>
516       <AssemblyInfo>
517         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
518         <AssemblyVersion>2.0.0.0</AssemblyVersion>
519         <AssemblyVersion>4.0.0.0</AssemblyVersion>
520       </AssemblyInfo>
521       <ReturnValue>
522         <ReturnType>System.Void</ReturnType>
523       </ReturnValue>
524       <Parameters>
525         <Parameter Name="serializationStream" Type="System.IO.Stream" />
526         <Parameter Name="graph" Type="System.Object" />
527         <Parameter Name="headers" Type="System.Runtime.Remoting.Messaging.Header[]" />
528       </Parameters>
529       <Docs>
530         <remarks>
531           <attribution license="cc4" from="Microsoft" modified="false" />
532           <para>The serialization process includes the information supplied in the <paramref name="headers" /> parameter at the front of the serialized stream.</para>
533           <para>Headers are used only for specific remoting applications.</para>
534         </remarks>
535         <summary>
536           <attribution license="cc4" from="Microsoft" modified="false" />
537           <para>Serializes the object, or graph of objects with the specified top (root), to the given stream attaching the provided headers.</para>
538         </summary>
539         <param name="serializationStream">
540           <attribution license="cc4" from="Microsoft" modified="false" />The stream to which the object is to be serialized. </param>
541         <param name="graph">
542           <attribution license="cc4" from="Microsoft" modified="false" />The object at the root of the graph to serialize. </param>
543         <param name="headers">
544           <attribution license="cc4" from="Microsoft" modified="false" />Remoting headers to include in the serialization. Can be null. </param>
545       </Docs>
546     </Member>
547     <Member MemberName="SurrogateSelector">
548       <MemberSignature Language="C#" Value="public System.Runtime.Serialization.ISurrogateSelector SurrogateSelector { get; set; }" />
549       <MemberSignature Language="ILAsm" Value=".property instance class System.Runtime.Serialization.ISurrogateSelector SurrogateSelector" />
550       <MemberType>Property</MemberType>
551       <AssemblyInfo>
552         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
553         <AssemblyVersion>2.0.0.0</AssemblyVersion>
554         <AssemblyVersion>4.0.0.0</AssemblyVersion>
555       </AssemblyInfo>
556       <ReturnValue>
557         <ReturnType>System.Runtime.Serialization.ISurrogateSelector</ReturnType>
558       </ReturnValue>
559       <Docs>
560         <value>To be added.</value>
561         <remarks>
562           <attribution license="cc4" from="Microsoft" modified="false" />
563           <para>The surrogate selector is used by <see cref="N:System.Runtime.Remoting" /> to generate <see cref="T:System.Runtime.Remoting.ObjRef" /> instances for objects that derive from <see cref="T:System.MarshalByRefObject" />.</para>
564         </remarks>
565         <summary>
566           <attribution license="cc4" from="Microsoft" modified="false" />
567           <para>Gets or sets a <see cref="T:System.Runtime.Serialization.ISurrogateSelector" /> that controls type substitution during serialization and deserialization.</para>
568         </summary>
569       </Docs>
570     </Member>
571     <Member MemberName="TypeFormat">
572       <MemberSignature Language="C#" Value="public System.Runtime.Serialization.Formatters.FormatterTypeStyle TypeFormat { get; set; }" />
573       <MemberSignature Language="ILAsm" Value=".property instance valuetype System.Runtime.Serialization.Formatters.FormatterTypeStyle TypeFormat" />
574       <MemberType>Property</MemberType>
575       <AssemblyInfo>
576         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
577         <AssemblyVersion>2.0.0.0</AssemblyVersion>
578         <AssemblyVersion>4.0.0.0</AssemblyVersion>
579       </AssemblyInfo>
580       <ReturnValue>
581         <ReturnType>System.Runtime.Serialization.Formatters.FormatterTypeStyle</ReturnType>
582       </ReturnValue>
583       <Docs>
584         <value>To be added.</value>
585         <remarks>To be added.</remarks>
586         <summary>
587           <attribution license="cc4" from="Microsoft" modified="false" />
588           <para>Gets or sets the format in which type descriptions are laid out in the serialized stream.</para>
589         </summary>
590       </Docs>
591     </Member>
592     <Member MemberName="UnsafeDeserialize">
593       <MemberSignature Language="C#" Value="public object UnsafeDeserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler);" />
594       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance object UnsafeDeserialize(class System.IO.Stream serializationStream, class System.Runtime.Remoting.Messaging.HeaderHandler handler) cil managed" />
595       <MemberType>Method</MemberType>
596       <AssemblyInfo>
597         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
598         <AssemblyVersion>2.0.0.0</AssemblyVersion>
599         <AssemblyVersion>4.0.0.0</AssemblyVersion>
600       </AssemblyInfo>
601       <Attributes>
602         <Attribute>
603           <AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName>
604         </Attribute>
605       </Attributes>
606       <ReturnValue>
607         <ReturnType>System.Object</ReturnType>
608       </ReturnValue>
609       <Parameters>
610         <Parameter Name="serializationStream" Type="System.IO.Stream" />
611         <Parameter Name="handler" Type="System.Runtime.Remoting.Messaging.HeaderHandler" />
612       </Parameters>
613       <Docs>
614         <returns>To be added.</returns>
615         <remarks>
616           <attribution license="cc4" from="Microsoft" modified="false" />
617           <para>Headers are used only for specific remoting applications.</para>
618           <para>This method uses <see cref="F:System.Security.Permissions.SecurityAction.LinkDemand" /> to prevent it from being called from untrusted code; only the immediate caller is required to have <see cref="P:System.Security.Permissions.SecurityPermissionAttribute.SerializationFormatter" /> permission. Do not use this method if your code can be called from partially trusted code. In partially trusted scenarios, use <see cref="M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(System.IO.Stream)" /> instead. In full trust scenarios, <see cref="M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.UnsafeDeserialize(System.IO.Stream,System.Runtime.Remoting.Messaging.HeaderHandler)" /> provides better performance than <see cref="M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(System.IO.Stream)" />.</para>
619           <para>For successful deserialization, the current position in the stream must be at the beginning of the object graph.</para>
620           <block subset="none" type="note">
621             <para>Calling this method with untrusted data is a security risk. Call this method only with trusted data. For more information, see <see cref="http://go.microsoft.com/fwlink/?LinkId=330378">Untrusted Data Security Risks</see>.</para>
622           </block>
623         </remarks>
624         <summary>
625           <attribution license="cc4" from="Microsoft" modified="false" />
626           <para>Deserializes the specified stream into an object graph. The provided <see cref="T:System.Runtime.Remoting.Messaging.HeaderHandler" /> handles any headers in that stream.</para>
627         </summary>
628         <param name="serializationStream">
629           <attribution license="cc4" from="Microsoft" modified="false" />The stream from which to deserialize the object graph. </param>
630         <param name="handler">
631           <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Remoting.Messaging.HeaderHandler" /> that handles any headers in the <paramref name="serializationStream" />. Can be null. </param>
632       </Docs>
633     </Member>
634     <Member MemberName="UnsafeDeserializeMethodResponse">
635       <MemberSignature Language="C#" Value="public object UnsafeDeserializeMethodResponse (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler, System.Runtime.Remoting.Messaging.IMethodCallMessage methodCallMessage);" />
636       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance object UnsafeDeserializeMethodResponse(class System.IO.Stream serializationStream, class System.Runtime.Remoting.Messaging.HeaderHandler handler, class System.Runtime.Remoting.Messaging.IMethodCallMessage methodCallMessage) cil managed" />
637       <MemberType>Method</MemberType>
638       <AssemblyInfo>
639         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
640         <AssemblyVersion>2.0.0.0</AssemblyVersion>
641         <AssemblyVersion>4.0.0.0</AssemblyVersion>
642       </AssemblyInfo>
643       <Attributes>
644         <Attribute>
645           <AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName>
646         </Attribute>
647       </Attributes>
648       <ReturnValue>
649         <ReturnType>System.Object</ReturnType>
650       </ReturnValue>
651       <Parameters>
652         <Parameter Name="serializationStream" Type="System.IO.Stream" />
653         <Parameter Name="handler" Type="System.Runtime.Remoting.Messaging.HeaderHandler" />
654         <Parameter Name="methodCallMessage" Type="System.Runtime.Remoting.Messaging.IMethodCallMessage" />
655       </Parameters>
656       <Docs>
657         <returns>To be added.</returns>
658         <remarks>
659           <attribution license="cc4" from="Microsoft" modified="false" />
660           <para>Details about the caller object are not sent to the remote object during the method call. Instead, these details are obtained from the original method call that is passed to the current method in the <paramref name="methodCallMessage" /> parameter.</para>
661           <para>This method uses <see cref="F:System.Security.Permissions.SecurityAction.LinkDemand" /> to prevent it from being called from untrusted code; only the immediate caller is required to have <see cref="P:System.Security.Permissions.SecurityPermissionAttribute.SerializationFormatter" /> permission. Do not use this method if your code can be called from partially trusted code. In partially trusted scenarios, use <see cref="M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.DeserializeMethodResponse(System.IO.Stream,System.Runtime.Remoting.Messaging.HeaderHandler,System.Runtime.Remoting.Messaging.IMethodCallMessage)" /> instead. In full trust scenarios, <see cref="M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.UnsafeDeserializeMethodResponse(System.IO.Stream,System.Runtime.Remoting.Messaging.HeaderHandler,System.Runtime.Remoting.Messaging.IMethodCallMessage)" /> provides better performance than <see cref="M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.DeserializeMethodResponse(System.IO.Stream,System.Runtime.Remoting.Messaging.HeaderHandler,System.Runtime.Remoting.Messaging.IMethodCallMessage)" />.</para>
662           <para>For successful deserialization, the current position in the stream must be at the beginning of the object graph.</para>
663           <block subset="none" type="note">
664             <para>Calling this method with untrusted data is a security risk. Call this method only with trusted data. For more information, see <see cref="http://go.microsoft.com/fwlink/?LinkId=330378">Untrusted Data Security Risks</see>.</para>
665           </block>
666         </remarks>
667         <summary>
668           <attribution license="cc4" from="Microsoft" modified="false" />
669           <para>Deserializes a response to a remote method call from the provided <see cref="T:System.IO.Stream" />.</para>
670         </summary>
671         <param name="serializationStream">
672           <attribution license="cc4" from="Microsoft" modified="false" />The stream from which to deserialize the object graph. </param>
673         <param name="handler">
674           <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Remoting.Messaging.HeaderHandler" /> that handles any headers in the <paramref name="serializationStream" />. Can be null. </param>
675         <param name="methodCallMessage">
676           <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Remoting.Messaging.IMethodCallMessage" /> that contains details about where the call came from. </param>
677       </Docs>
678     </Member>
679   </Members>
680 </Type>