using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
namespace System.Runtime.Serialization
{
/// Implements a serialization surrogate selector that allows one object to perform serialization and deserialization of another.
// Token: 0x0200045E RID: 1118
[Token(Token = "0x200045E")]
[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: 0x0600269B RID: 9883
[Token(Token = "0x600269B")]
[Address(Slot = "0")]
void GetObjectData(object obj, SerializationInfo info, StreamingContext context);
/// Populates the object using the information in the .
/// 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 populated deserialized object.
/// The caller does not have the required permission.
// Token: 0x0600269C RID: 9884
[Token(Token = "0x600269C")]
[Address(Slot = "1")]
object SetObjectData(object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector);
}
}