Exemple #1
0
        /// <summary>
        /// Creates the temporary assembly.
        /// </summary>
        /// <param name="sourceCodes">The source codes.</param>
        /// <param name="codeReferencedAssembly">The code referenced assembly.</param>
        /// <returns>System.String.</returns>
        public string CreateTempAssembly(string[] sourceCodes, HashSet <string> codeReferencedAssembly = null)
        {
            try
            {
                sourceCodes.CheckNullObject("sourceCodes");
                _assemblyProvider.CheckNullObject("_assemblyProvider");

                var compileResult = _assemblyProvider.CreateRemoteTempAssembly(sourceCodes, codeReferencedAssembly);
                compileResult.CheckNullObject(nameof(compileResult));

                var exceptionInfo = compileResult.GetExceptionInfo();
                if (exceptionInfo == null)
                {
                    return(compileResult.TempAssemblyName);
                }
                else
                {
                    throw ExceptionFactory.CreateOperationException(data: exceptionInfo);
                }
            }
            catch (Exception ex)
            {
                throw ex.Handle(new { sourceCodes, codeReferencedAssembly });
            }
        }
Exemple #2
0
        /// <summary>
        /// Creates the temporary assembly.
        /// </summary>
        /// <param name="coreCode">The core code.</param>
        /// <param name="codeReferencedAssembly">The code referenced assembly.</param>
        /// <param name="usingNameSpaces">The using name spaces.</param>
        /// <param name="namespace">The namespace.</param>
        /// <returns>System.String.</returns>
        public string CreateTempAssembly(string coreCode, HashSet <string> codeReferencedAssembly = null, IEnumerable <string> usingNameSpaces = null, string @namespace = null)
        {
            try
            {
                coreCode.CheckNullObject(nameof(coreCode));
                _assemblyProvider.CheckNullObject(nameof(_assemblyProvider));

                var compileResult = _assemblyProvider.CreateRemoteTempAssembly(coreCode, codeReferencedAssembly, usingNameSpaces, @namespace);
                var exceptionInfo = compileResult.GetExceptionInfo();
                if (exceptionInfo == null)
                {
                    return(compileResult.TempAssemblyName);
                }
                else
                {
                    throw ExceptionFactory.CreateOperationException(data: exceptionInfo);
                }
            }
            catch (Exception ex)
            {
                throw ex.Handle(new { coreCode, codeReferencedAssembly });
            }
        }