Example #1
0
        public override void Execute()
        {
            bool typeExists        = false;
            bool constructorExists = false;

            if (_parameterTypes == null &&
                _parameters != null)
            {
                //try to get parameter types from values
                //this is not working with null values (use SetParameterTypes when you have errors)
                _parameterTypes = ActivatorHelper.GetParameterTypes(_parameters);
            }

            typeExists = ActivatorHelper.TypeExists(_assemblyName, _completeTypeName);

            if (!typeExists)
            {
                MessageBox.ShowError("Funktion nicht gefunden",
                                     string.Format("Die Funktion [{0}, {1}] konnte nicht gefunden werden.", _assemblyName,
                                                   _completeTypeName), "Funktion ungültig");
            }

            if (typeExists && HasParameters)
            {
                constructorExists = EvaluateConstructorExists();

                if (!constructorExists)
                {
                    MessageBox.ShowError("Konstruktor nicht gefunden",
                                         string.Format("Der Konstruktor für den Typ [{0}, {1}] konnte nicht gefunden werden.",
                                                       _assemblyName, _completeTypeName), "Konstruktor ungültig");
                }
            }

            if (typeExists)
            {
                _applicationCommandInstance = ActivatorHelper.CreateInstance(_assemblyName, _completeTypeName,
                                                                             _parameters, _parameterTypes);

                if (_applicationCommandInstance != null && _applicationCommandInstance is IApplicationCommand)
                {
                    ((IApplicationCommand)_applicationCommandInstance).Execute();
                }
            }
        }