using System;
using System.Runtime.InteropServices;
namespace System.Runtime.Serialization
{
/// Indicates a serialization surrogate selector class.
// Token: 0x02000480 RID: 1152
[ComVisible(true)]
public interface ISurrogateSelector
{
/// Specifies the next for surrogates to examine if the current instance does not have a surrogate for the specified type and assembly in the specified context.
/// The next surrogate selector to examine.
/// The caller does not have the required permission.
// Token: 0x06002BFE RID: 11262
void ChainSelector(ISurrogateSelector selector);
/// Returns the next surrogate selector in the chain.
/// The next surrogate selector in the chain or null.
/// The caller does not have the required permission.
// Token: 0x06002BFF RID: 11263
ISurrogateSelector GetNextSelector();
/// Finds the surrogate that represents the specified object's type, starting with the specified surrogate selector for the specified serialization context.
/// The appropriate surrogate for the given type in the given context.
/// The of object (class) that needs a surrogate.
/// The source or destination context for the current serialization.
/// When this method returns, contains a that holds a reference to the surrogate selector where the appropriate surrogate was found. This parameter is passed uninitialized.
/// The caller does not have the required permission.
// Token: 0x06002C00 RID: 11264
ISerializationSurrogate GetSurrogate(Type type, StreamingContext context, out ISurrogateSelector selector);
}
}