namespace ProtoBuf
{
///
/// Indicates that the implementing type has support for protocol-buffer
/// extensions.
///
/// Can be implemented by deriving from Extensible.
public interface IExtensible
{
///
/// Retrieves the extension object for the current
/// instance, optionally creating it if it does not already exist.
///
/// Should a new extension object be
/// created if it does not already exist?
/// The extension object if it exists (or was created), or null
/// if the extension object does not exist or is not available.
/// The createIfMissing argument is false during serialization,
/// and true during deserialization upon encountering unexpected fields.
IExtension GetExtensionObject(bool createIfMissing);
}
}