You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

44 lines
1.9 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IPA.Loader
{
/// <summary>
/// Indicates that a plugin cannot be disabled at runtime. Generally not considered an error, however.
/// </summary>
[Serializable]
public class CannotRuntimeDisableException : Exception
{
/// <summary>
/// The plugin that cannot be disabled at runtime.
/// </summary>
public PluginMetadata Plugin { get; }
/// <summary>
/// Creates an exception for the given plugin metadata.
/// </summary>
/// <param name="plugin">the plugin that cannot be disabled</param>
public CannotRuntimeDisableException(PluginMetadata plugin) : base($"Cannot runtime disable plugin \"{plugin.Name}\" ({plugin.Id})")
=> Plugin = plugin;
/// <summary>
/// Creats an exception with the given plugin metadata and message information.
/// </summary>
/// <param name="plugin">the plugin that cannot be disabled</param>
/// <param name="message">the message to associate with it</param>
public CannotRuntimeDisableException(PluginMetadata plugin, string message) : base($"{message} \"{plugin.Name}\" ({plugin.Id})")
=> Plugin = plugin;
/// <summary>
/// Creates an exception from a serialization context. Not currently implemented.
/// </summary>
/// <param name="serializationInfo"></param>
/// <param name="streamingContext"></param>
/// <exception cref="NotImplementedException"></exception>
protected CannotRuntimeDisableException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext)
{
throw new NotImplementedException();
}
}
}