public bool ContainsProperty(string propertyName, object context = null)
            {
                //return true;
                try
                {
                    object output    = null;
                    string codeBlock = propertyName.Trim();
                    if (!codeBlock.Contains(";") && !codeBlock.StartsWith("return"))
                    {
                        codeBlock = "return {0};".FormatString(codeBlock);
                    }

                    using (ChoCodeDomProvider cs = new ChoCodeDomProvider(new string[] { codeBlock }))
                        output = cs.ExecuteFunc(context);

                    return(true);
                }
                catch (ChoFatalApplicationException)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    Trace.TraceError(ex.ToString());
                    return(false);
                }
            }
            public string ReplaceProperty(string propertyName, string format, object context)
            {
                //try
                //{
                object output    = null;
                string codeBlock = propertyName.Trim();

                if (!codeBlock.Contains(";") && !codeBlock.StartsWith("return"))
                {
                    codeBlock = "return {0};".FormatString(codeBlock);
                }

                using (ChoCodeDomProvider cs = new ChoCodeDomProvider(new string[] { codeBlock }))
                    output = cs.ExecuteFunc(context);

                return(ChoObject.ToString(output, format));
                //}
                //catch (ChoFatalApplicationException)
                //{
                //    throw;
                //}
                //catch (Exception ex)
                //{
                //    return ChoPropertyManager.FormatException(propertyName, ex);
                //}
            }
Пример #3
0
        protected override object Execute(object value, out bool isHandled)
        {
            isHandled = false;
            if (CodeSnippet.IsNullOrWhiteSpace())
            {
                return(value);
            }

            string codeSnippet = ResolveText(CodeSnippet);
            string arguments   = !Arguments.IsNullOrWhiteSpace() ? "{0} {1}".FormatString(value.ToNString(), ResolveText(Arguments)) : value.ToNString();

            string[] nameSpaces = Namespaces.SplitNTrim();

            ChoCodeDomProvider cs = new ChoCodeDomProvider(new string[] { codeSnippet }, nameSpaces, ChoCodeProviderLanguage.VB);

            return(cs.ExecuteFunc(ChoString.Split2Objects(arguments, ' ')));
        }
Пример #4
0
        private void Init()
        {
            if (_isInitialized)
            {
                return;
            }

            try
            {
                if (CodeSnippet.IsNullOrWhiteSpace())
                {
                    return;
                }

                string   codeSnippet = ResolveText(CodeSnippet);
                string[] nameSpaces  = Namespaces.SplitNTrim();

                _cs = new ChoCodeDomProvider(new string[] { codeSnippet }, nameSpaces);
            }
            finally
            {
                _isInitialized = true;
            }
        }