public RuleEvaluator(VariableDeclarationList TagsSchema,
                      object PredefinedFunctions,
                      string sTempFilesPath,
                      bool bKeepTempFiles)
 {
     InitializeRuleEvaluator(
         TagsSchema,
         PredefinedFunctions,
         sTempFilesPath,
         bKeepTempFiles);
 }
        internal StrongTypedRuleBuilder(
            VariableDeclarationList TagsSchema,
            object PredefinedFunctions,
            string sTempFilesPath,
            bool bKeepTempFiles)
        {
            if (TagsSchema == null || PredefinedFunctions == null)
            {
                throw new ArgumentNullException("Error! StrongTypedRuleBuilder:StrongTypedRuleBuilder can not get null arguments");
            }

            m_sTempFilesPath = sTempFilesPath;

            // TO_DO: Change... Because when running from IIS it cant find the TestVBRule.vb when it is without full path.
            m_TestVBRulesFileFullPath = Path.GetDirectoryName(m_sTempFilesPath);
            m_TestVBRulesFileFullPath = Path.GetDirectoryName(m_TestVBRulesFileFullPath);
            m_TestVBRulesFileFullPath = Path.Combine(m_TestVBRulesFileFullPath, @"bin\TestVBRule.vb");

            m_GlobalVariablesSchema = TagsSchema;
            m_PredefinedFunctions   = PredefinedFunctions;
            m_UniqueID           = 0;
            m_FunctionsReflector = new FunctionsReflector(PredefinedFunctions);
            m_bKeepTempFiles     = bKeepTempFiles;
        }
        protected void InitializeRuleEvaluator(
            VariableDeclarationList TagsSchema,
            object PredefinedFunctions,
            string sTempFilesPath,
            bool bKeepTempFiles)
        {
            if (TagsSchema == null || PredefinedFunctions == null)
            {
                throw new ArgumentNullException("Error! RuleEvaluator:RuleEvaluator can not get null argument");
            }

            m_oGlobalVariablesDeclaration = TagsSchema;
            m_oPredefinedFunctions        = PredefinedFunctions;

            m_oRulesCache = new Hashtable();

            m_oStrongTypedRuleBuilder = new StrongTypedRuleBuilder(
                m_oGlobalVariablesDeclaration,
                m_oPredefinedFunctions,
                sTempFilesPath,
                bKeepTempFiles);

            m_bValidateVariables = true;
        }