using System;
using System.Runtime.InteropServices;
namespace System.Runtime.Serialization
{
/// Implements a serialization surrogate selector that allows one object to perform serialization and deserialization of another.
// Token: 0x0200047F RID: 1151
[ComVisible(true)]
public interface ISerializationSurrogate
{
/// Populates the provided with the data needed to serialize the object.
/// The object to serialize.
/// The to populate with data.
/// The destination (see ) for this serialization.
/// The caller does not have the required permission.
// Token: 0x06002BFC RID: 11260
void GetObjectData(object obj, SerializationInfo info, StreamingContext context);
/// Populates the object using the information in the .
/// The populated deserialized object.
/// The object to populate.
/// The information to populate the object.
/// The source from which the object is deserialized.
/// The surrogate selector where the search for a compatible surrogate begins.
/// The caller does not have the required permission.
// Token: 0x06002BFD RID: 11261
object SetObjectData(object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector);
}
}