Example #1
0
        public bool LoadAdditionalDlls()
        {
            Action onDllProcessed = () => progressCounter.IncreaseDoneWork(1);

            try
            {
                var operandSelectors        = pluginManager.GetDlls(OPERAND_SELECTORS_FOLDER);
                var operations              = pluginManager.GetDlls(OPERATIONS_FOLDER);
                var communicationInterfaces = pluginManager.GetDlls(COMMUNICATION_INTERFACES_FOLDER);

                progressCounter.Init(operandSelectors.Count + operations.Count + communicationInterfaces.Count);
                pluginManager.OnDllProcessed += onDllProcessed;

                pluginManager.RegisterChildren <OperandSelector>(operandSelectors);

                pluginManager.RegisterChildren <Operation>(operations, new object[] { networkOperator },
                                                           op => pluginManager.LoadRegisteredInstanceToField <Operation, OperandSelector>(op, op.OperandSelectorFieldName, op.OperandSelectorType));

                pluginManager.RegisterChildren <ICommunicationInterface>(communicationInterfaces);
                return(true);
            }
            catch (IOException e)
            {
                UIUpdater.RaiseError(e.Message);
                return(false);
            }
            finally
            {
                pluginManager.OnDllProcessed -= onDllProcessed;
            }
        }