Я собираюсь создать переменные даты и строки, которые мне нужно будет отсортировать по времени. В этом наборе информации должны быть добавлены и удалены записи при запуске сценария. Основываясь на моих исследованиях, кажется, что жизнеспособным методом для достижения sh было бы создание хеш-таблицы, которая использует ключ для создания значения времени эпохи со связанным пользовательским классом, который имеет свойства для информации DateTime и String. Это позволило бы мне отсортировать га sh по ключу, и я могу добавлять и удалять элементы из хеш-таблицы по мере необходимости. Пользовательский класс, который я создал, - это Executor ниже.
public class Executor {
public DateTime StartTime { get; set; }
public string Name { get; set; }
public string Executable { get; set; }
public Executor(DateTime starttime, string name, string executable) {
StartTime = starttime;
Name = name;
Executable = executable;
}
}
С этим классом я могу создать al oop для создания и добавления экземпляров в хеш-таблицу для различных разрешенных в то время l oop. Приведенный ниже код создает информацию, которая должна храниться в хеш-таблице, и принимает список, который обеспечивает ввод правил для генерации ha sh. Некоторый код, который определяет времена и циклы в списке, для простоты удален из приведенного ниже примера.
static void CreateScriptScehdule(List<Script> scriptList) {
// Declare and initialize variables
Hashtable htExecutionList = new Hashtable();
// Code to create a list of the times and manage the item properties
...
...
// Create a loop to define the exeuction times of the script between the start and stop time.
// use a tempTime to compare to the stop time
while (DateTime.Compare(tempTime,timeStop) < 0) {
// Create an object for the executable based on the script rules
Executor exe = new Executor(tempTime,item.Name,item.Executable);
// Add the executable object to the hashtable htExecutionList
double exeTimeEpoch = ttoe(tempTime);
exeKey = exeTimeEpoch.ToString() + item.Name;
htExecutionList.Add(exeKey,exe);
}
// Loop through the hashtable to print out the stored information to verify the creation for debugging
foreach (DictionaryEntry s in htExecutionList) {
//Console.WriteLine(s.Value);
}
}
Когда я проверяю значение s.Value, я получаю значение ReceiveConfigFile.Executor. Это заставляет меня поверить, что объект Executor be be сохраняется из сценария ReceiveConfigFile, но когда я пытаюсь получить такие свойства, как StartTime или Name , я получаю сообщение об ошибке. Я пытался напечатать значение как s.Value.Name , думая, что я могу получить свойство объекта. Я получаю ошибку:
error CS1061: 'System.Collection.DictionaryEntry' does not contain a definition for 'Namel accepting a first argument of type 'System.Collections.DictionaryEntry' could be found (are you missing a using directive or an assembly reference)