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(); } } }