2002-03-12 Duncan Mak <duncan@ximian.com>
[mono.git] / mcs / class / corlib / System.Runtime.Serialization / ISerializationSurrogate.cs
1 //\r
2 // System.Runtime.Serialization.ISerializationSurrogate\r
3 //\r
4 // Author:\r
5 //   David Dawkins (david@dawkins.st)\r
6 //\r
7 // (C) David Dawkins\r
8 //\r
9 \r
10 namespace System.Runtime.Serialization {\r
11 \r
12         /// <summary>\r
13         /// Interface for serialization surrogates</summary>\r
14         public interface ISerializationSurrogate {\r
15 \r
16                 /// <summary>\r
17                 /// Get the SerializationInfo necessary to serialize\r
18                 /// the specified object </summary>\r
19                 /// <param name="obj">Object to be serialized</param>\r
20                 /// <param name="info">SerializationInfo to be populated</param>\r
21                 /// <param name="context">Destination for serialization</param>\r
22                 void GetObjectData(\r
23                         object obj,\r
24                         SerializationInfo info,\r
25                         StreamingContext context\r
26                 );      \r
27 \r
28                 /// <summary>\r
29                 /// Populate an object using the specified SerializationInfo </summary>\r
30                 /// <param name="obj">Object to be populated</param>\r
31                 /// <param name="info">Data used for populating object</param>\r
32                 /// <param name="context">Source for deserialization of object</param>\r
33                 /// <param name="selector>Starting point for searching for compatible surrogates</param>\r
34                 /// <returns>The deserialized object</returns>\r
35                 object SetObjectData(\r
36                         object obj,\r
37                         SerializationInfo info,\r
38                         StreamingContext context,\r
39                         ISurrogateSelector selector\r
40                 );\r
41         }\r
42 \r
43 }\r