Ho degli strumenti. Ogni strumento dovrebbe avere un nome (stringa) e una descrizione (stringa).
Ogni strumento può avere alcune configurazioni, che sono tutte queste serie di comandi (stringa [] o Elenco).
Voglio che questa classe sia flessibile, così posso facilmente aggiungere o rimuovere un intero strumento, o aggiungere o rimuovere impostazioni per qualsiasi strumento esistente nella classe.
Alla fine, voglio salvare questa classe nelle proprietà del mio assembly così ogni volta che il programma si avvia può essere caricato. Sto anche pensando di serializzarlo e salvarlo su disco per passare a un'altra copia del software.
Quindi per favore fatemi sapere cosa ne pensate di questo approccio e se pensate che questo possa essere migliorato o anche io dovrei considerare di andare in un altro modo, fatemelo sapere!
namespace MeasurementSuite
{
/// <summary>
/// Setups for all instruments
/// </summary>
public class Setups
{
/// <summary>
/// An instrument
/// </summary>
public class Instrument
{
/// <summary>
/// Name of the instrument
/// </summary>
public string Name { get; set; }
/// <summary>
/// Info about the instrument
/// </summary>
public string Info { get; set; }
/// <summary>
/// List of existing setups
/// </summary>
public List<Setup> SetupList { get; set; }
/// <summary>
/// Adds a setup to the instrument
/// </summary>
/// <param name="name"></param>
/// <param name="commands"></param>
private void AddSetup(string name, string[] commands)
{
this.SetupList.Add(new Setup(name, commands));
}
/// <summary>
/// Removes a setup from the instrument
/// </summary>
/// <param name="name">Name of the setup</param>
public void RemoveSetup(string name)
{
foreach (Setup setup in SetupList)
{
if (setup.Name == name)
{
SetupList.Remove(setup);
}
}
}
}
/// <summary>
/// Setup for a instrument
/// </summary>
public class Setup
{
/// <summary>
/// Name of the setup
/// </summary>
public string Name { get; set; }
/// <summary>
/// Command sets for setup
/// </summary>
public string[] CommandSet { get; set; }
/// <summary>
/// Constructor
/// </summary>
/// <param name="name">Setup Name</param>
/// <param name="commands">Setup Command sets</param>
public Setup(string name, string[] commands)
{
this.Name = name;
this.CommandSet = commands;
}
}
}
}