109 lines
3.8 KiB
C#
109 lines
3.8 KiB
C#
using Newtonsoft.Json;
|
|
using Pilz.GeneralEventArgs;
|
|
using System.IO;
|
|
|
|
namespace Pilz.Configuration;
|
|
|
|
public class SimpleConfiguration
|
|
{
|
|
[JsonIgnore]
|
|
public readonly ConfigurationManagerList Managers = new ConfigurationManagerList();
|
|
|
|
public SimpleConfiguration()
|
|
{
|
|
Managers.GettingParentManager += Managers_GettingParentManager;
|
|
}
|
|
|
|
private void Managers_GettingParentManager(object sender, GetValueEventArgs<SimpleConfiguration> e)
|
|
{
|
|
if (ReferenceEquals(sender, Managers))
|
|
e.Value = this;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Writes this instance to a string and return it.
|
|
/// </summary>
|
|
/// <returns>The content of the configuration instance as string.</returns>
|
|
public string WriteToString()
|
|
{
|
|
return ConfigurationSerializer.WriteToString(this);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Write this instance to a given stream.
|
|
/// </summary>
|
|
/// <param name="stream">The stream where the content should be written to.</param>
|
|
public void WriteToStream(Stream stream)
|
|
{
|
|
ConfigurationSerializer.WriteToStream(this, stream);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Writes this instance to the given filePath as text file.
|
|
/// </summary>
|
|
/// <param name="filePath">The file path where the content should be written to. The file will be created or overwritten.</param>
|
|
public void WriteToFile(string filePath)
|
|
{
|
|
ConfigurationSerializer.WriteToFile(this, filePath);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Reads a configuratin from the given string and returns an instance of it.
|
|
/// </summary>
|
|
/// <typeparam name="T">The type of the configuration class to instance.</typeparam>
|
|
/// <param name="content">The content of the configuration as string.</param>
|
|
/// <returns></returns>
|
|
public static T ReadFromString<T>(string content) where T : SimpleConfiguration
|
|
{
|
|
return ConfigurationSerializer.ReadFromString<T>(content);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Read a configuration from the given string and put them to this instance.
|
|
/// </summary>
|
|
/// <param name="content">The content of the configuration as string.</param>
|
|
public void ReadFromString(string content)
|
|
{
|
|
ConfigurationSerializer.ReadFromString(this, content);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Reads a configuratin from the given string and returns an instance of it.
|
|
/// </summary>
|
|
/// <typeparam name="T">The type of the configuration class to instance.</typeparam>
|
|
/// <param name="stream">The stream with the content of the configuration.</param>
|
|
/// <returns></returns>
|
|
public static T ReadFromStream<T>(Stream stream) where T : SimpleConfiguration
|
|
{
|
|
return ConfigurationSerializer.ReadFromStream<T>(stream);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Read a configuration from the given string and put them to this instance.
|
|
/// </summary>
|
|
/// <param name="stream">The stream with the content of the configuration.</param>
|
|
public void ReadFromStream(Stream stream)
|
|
{
|
|
ConfigurationSerializer.ReadFromStream(this, stream);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Reads a configuratin from the given string and returns an instance of it.
|
|
/// </summary>
|
|
/// <typeparam name="T">The type of the configuration class to instance.</typeparam>
|
|
/// <param name="filePath">The path to the file with the content of the configuration.</param>
|
|
/// <returns></returns>
|
|
public static T ReadFromFile<T>(string filePath) where T : SimpleConfiguration
|
|
{
|
|
return ConfigurationSerializer.ReadFromFile<T>(filePath);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Read a configuration from the given string and put them to this instance.
|
|
/// </summary>
|
|
/// <param name="filePath">The path to the file with the content of the configuration.</param>
|
|
public void ReadFromFile(string filePath)
|
|
{
|
|
ConfigurationSerializer.ReadFromFile(this, filePath);
|
|
}
|
|
} |