Example #1
0
        /// <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");
            }
        }
Example #2
0
        /// <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);
//            }
        }
Example #3
0
        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();
            }
        }
Example #4
0
 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();
     }
 }
Example #5
0
        /// <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);
            //            }
        }