public MainForm() { InitializeComponent(); _tasksAssembly = Assembly.LoadFrom(ConfigurationManager.AppSettings["TasksAssembly"]); _callbacksAssembly = Assembly.LoadFrom(ConfigurationManager.AppSettings["CallbacksAssembly"]); // TODO: implement a prefix for each task description, don't use Count! _taskDescriptionToObject = new Dictionary <string, TaskObject>(ConfigurationManager.AppSettings.Count); _concreteEventArgsToTaskDescription = new Dictionary <Type, string>(ConfigurationManager.AppSettings.Count); foreach (var key in ConfigurationManager.AppSettings.AllKeys) { if (key != "TasksAssembly" && key != "CallbacksAssembly") { String[] concreteTypeNamesAndOperandsRequired = ConfigurationManager.AppSettings[key].Split(','); Type taskConcreteType = _tasksAssembly.GetType(concreteTypeNamesAndOperandsRequired[0]); Type taskCallbackType = _callbacksAssembly.GetType(concreteTypeNamesAndOperandsRequired[1]); Type taskConcreteEventArgsType = _callbacksAssembly.GetType(concreteTypeNamesAndOperandsRequired[2]); _taskDescriptionToObject.Add(key, new TaskObject(taskConcreteType, taskCallbackType, Int32.Parse(concreteTypeNamesAndOperandsRequired[3]), "true" == concreteTypeNamesAndOperandsRequired[4])); _concreteEventArgsToTaskDescription.Add(taskConcreteEventArgsType, key); tasksComboBox.Items.Add(key); } } _resultDelegate = new NewResultDelegate(AddResultToList); }
public MainForm() { InitializeComponent(); _tasksAssembly = Assembly.LoadFrom(ConfigurationManager.AppSettings["TasksAssembly"]); _callbacksAssembly = Assembly.LoadFrom(ConfigurationManager.AppSettings["CallbacksAssembly"]); // TODO: implement a prefix for each task description, don't use Count! _taskDescriptionToObject = new Dictionary<string, TaskObject>(ConfigurationManager.AppSettings.Count); _concreteEventArgsToTaskDescription = new Dictionary<Type, string>(ConfigurationManager.AppSettings.Count); foreach (var key in ConfigurationManager.AppSettings.AllKeys) { if (key != "TasksAssembly" && key != "CallbacksAssembly") { String[] concreteTypeNamesAndOperandsRequired = ConfigurationManager.AppSettings[key].Split(','); Type taskConcreteType = _tasksAssembly.GetType(concreteTypeNamesAndOperandsRequired[0]); Type taskCallbackType = _callbacksAssembly.GetType(concreteTypeNamesAndOperandsRequired[1]); Type taskConcreteEventArgsType = _callbacksAssembly.GetType(concreteTypeNamesAndOperandsRequired[2]); _taskDescriptionToObject.Add(key, new TaskObject(taskConcreteType, taskCallbackType, Int32.Parse(concreteTypeNamesAndOperandsRequired[3]), "true" == concreteTypeNamesAndOperandsRequired[4])); _concreteEventArgsToTaskDescription.Add(taskConcreteEventArgsType, key); tasksComboBox.Items.Add(key); } } _resultDelegate = new NewResultDelegate(AddResultToList); }