/// <summary> /// Constructor. /// </summary> /// <param name="language">The language used in the script.</param> /// <param name="moniker">The unique identifier of the script engine.</param> /// <param name="importedAssemblyDir">The directory of the used DVTK component/assemblies.</param> public DvtkScriptHost( DvtkScriptLanguage language, string moniker, string importedAssemblyDir) : base(_Convert(language), moniker, "DvtkScript") { bool dvtkHighLevelInterfaceAvailable = true; if (MonikerList.Contains(moniker)) { throw new System.ArgumentException("Moniker was already used."); } MonikerList.Add(moniker); System.IO.DirectoryInfo directoryInfo = new System.IO.DirectoryInfo(importedAssemblyDir); if (!directoryInfo.Exists) { throw new System.ArgumentException("Imported Assembly Directory does not exist."); } foreach (object key in References.Keys) { string itemName = (string)key; string assemblyName = System.IO.Path.Combine(importedAssemblyDir, (string)References[key]); System.IO.FileInfo fileInfo = new System.IO.FileInfo(assemblyName); if (!fileInfo.Exists) { // The file DvtkHighLevelInterface.dll may be absent. // In this case, no high level interface will be available. // All other dll's must be available. if (System.IO.Path.GetFileName(assemblyName) == "DvtkHighLevelInterface.dll") { dvtkHighLevelInterfaceAvailable = false; } else { throw new System.ArgumentException( string.Format("Required assembly {0} was not found", assemblyName)); } } else { this.AddReference((string)key, assemblyName); } } foreach (string nameSpace in NameSpaceImports) { this._AddImport(nameSpace); } // Only if the DvtkHighLevelInterface is available, add the corresponding namespace. if (dvtkHighLevelInterfaceAvailable) { this._AddImport("DvtkHighLevelInterface"); } }
/// <summary> /// Constructor. /// </summary> /// <param name="language">The language used in the script.</param> /// <param name="moniker">The unique identifier of the script engine.</param> /// <param name="importedAssemblyDir">The directory of the used DVTK component/assemblies.</param> public DvtkScriptHost( DvtkScriptLanguage language, string moniker, string importedAssemblyDir) : base(_Convert(language), moniker, "DvtkScript") { if (MonikerList.Contains(moniker)) { throw new System.ArgumentException("Moniker was already used."); } MonikerList.Add(moniker); System.IO.DirectoryInfo directoryInfo = new System.IO.DirectoryInfo(importedAssemblyDir); if (!directoryInfo.Exists) { throw new System.ArgumentException("Imported Assembly Directory does not exist."); } foreach (object key in References.Keys) { string itemName = (string)key; string assemblyNameOnly = (string)References[key]; string assemblyName = System.IO.Path.Combine(importedAssemblyDir, assemblyNameOnly); System.IO.FileInfo fileInfo = new System.IO.FileInfo(assemblyName); if (!fileInfo.Exists) { // Specific dll's must be present, other may be. if ((assemblyNameOnly.ToLower() == "dvtk.dll") || (assemblyNameOnly.ToLower() == "dvtkdata.dll") || (assemblyNameOnly.ToLower() == "dvtkmanagedcodeadapter.dll")) { throw new System.ArgumentException( string.Format("Required assembly {0} was not found", assemblyName)); } } else { bool ok = this.AddReference((string)key, assemblyName); if (!ok) { throw new System.ArgumentException(string.Format("The assembly {0} couldn't be added as reference.", assemblyName)); } } } // It is less clear for a script writer when DVTK namespaces are "invisibly" imported. So disable this. // foreach (string nameSpace in NameSpaceImports) // { // this._AddImport(nameSpace); // } }
private static string _Convert(DvtkScriptLanguage language) { switch (language) { case DvtkScriptLanguage.VB: return("VB"); case DvtkScriptLanguage.VisualBasic: return("Visual Basic"); case DvtkScriptLanguage.JScript: return("JScript"); case DvtkScriptLanguage.JScriptNET: return("JScript.NET"); default: throw new System.ApplicationException(); } }
private static string _Convert(DvtkScriptLanguage language) { switch (language) { case DvtkScriptLanguage.VB : return "VB"; case DvtkScriptLanguage.VisualBasic : return "Visual Basic"; case DvtkScriptLanguage.JScript : return "JScript"; case DvtkScriptLanguage.JScriptNET : return "JScript.NET"; default: throw new System.ApplicationException(); } }
/// <summary> /// Constructor. /// </summary> /// <param name="language">The language used in the script.</param> /// <param name="moniker">The unique identifier of the script engine.</param> /// <param name="importedAssemblyDir">The directory of the used DVTK component/assemblies.</param> public DvtkScriptHost( DvtkScriptLanguage language, string moniker, string importedAssemblyDir) : base(_Convert(language), moniker, "DvtkScript") { if (MonikerList.Contains(moniker)) throw new System.ArgumentException("Moniker was already used."); MonikerList.Add(moniker); System.IO.DirectoryInfo directoryInfo = new System.IO.DirectoryInfo(importedAssemblyDir); if (!directoryInfo.Exists) { throw new System.ArgumentException("Imported Assembly Directory does not exist."); } foreach (object key in References.Keys) { string itemName = (string)key; string assemblyNameOnly = (string)References[key]; string assemblyName = System.IO.Path.Combine(importedAssemblyDir, assemblyNameOnly); System.IO.FileInfo fileInfo = new System.IO.FileInfo(assemblyName); if (!fileInfo.Exists) { // Specific dll's must be present, other may be. if ((assemblyNameOnly.ToLower() == "dvtk.dll") || (assemblyNameOnly.ToLower() == "dvtkdata.dll") || (assemblyNameOnly.ToLower() == "dvtkmanagedcodeadapter.dll")) { throw new System.ArgumentException( string.Format("Required assembly {0} was not found", assemblyName)); } } else { bool ok = this.AddReference((string)key, assemblyName); if (!ok) { throw new System.ArgumentException(string.Format("The assembly {0} couldn't be added as reference.", assemblyName)); } } } // It is less clear for a script writer when DVTK namespaces are "invisibly" imported. So disable this. // foreach (string nameSpace in NameSpaceImports) // { // this._AddImport(nameSpace); // } }