private void RunScript(Assembly assembly, string scriptName, IWorkItem self) { // HACK name must match C# and VB.NET implementations var classForScript = assembly.GetType("RESERVED.Script_" + scriptName); if (classForScript == null) { this.Logger.FailureLoadingScript(scriptName); return; } var interfaceForScript = classForScript.GetInterface(typeof(IDotNetScript).Name); if (interfaceForScript == null) { this.Logger.FailureLoadingScript(scriptName); return; } ConstructorInfo constructor = classForScript.GetConstructor(Type.EmptyTypes); if (constructor == null || !constructor.IsPublic) { this.Logger.FailureLoadingScript(scriptName); return; } // we specified that we wanted a constructor that doesn't take parameters, so don't pass parameters IDotNetScript scriptObject = constructor.Invoke(null) as IDotNetScript; if (scriptObject == null) { this.Logger.FailureLoadingScript(scriptName); return; } System.Diagnostics.Debug.WriteLine("*** about to execute {0}", scriptName, null); this.Logger.ScriptLogger.RuleName = scriptName; // Lets run our script and display its results object result = scriptObject.RunScript(self, this.Store, this.Logger.ScriptLogger); this.Logger.ResultsFromScriptRun(scriptName, result); }
private void RunScript(Assembly assembly, string scriptName, IWorkItem self, IWorkItemRepository store) { var classForScript = assembly.GetType(this.Namespace + "." + this.ClassPrefix + scriptName); if (classForScript == null) { this.Logger.FailureLoadingScript(scriptName); return; } var interfaceForScript = classForScript.GetInterface(typeof(IDotNetScript).Name); if (interfaceForScript == null) { this.Logger.FailureLoadingScript(scriptName); return; } ConstructorInfo constructor = classForScript.GetConstructor(Type.EmptyTypes); if (constructor == null || !constructor.IsPublic) { this.Logger.FailureLoadingScript(scriptName); return; } // we specified that we wanted a constructor that doesn't take parameters, so don't pass parameters IDotNetScript scriptObject = constructor.Invoke(null) as IDotNetScript; if (scriptObject == null) { this.Logger.FailureLoadingScript(scriptName); return; } this.Logger.ScriptLogger.RuleName = scriptName; // Lets run our script and display its results object result = scriptObject.RunScript(self, store, this.Logger.ScriptLogger, this.Library); this.Logger.ResultsFromScriptRun(scriptName, result); }