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); //} }
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, ' '))); }
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; } }