public void BuildFunc(string paramName, Type paramType)
        {
            if (_targetFuncObj == null)
            {
                string className    = "ChoClass_{0}".FormatString(ChoIntRandom.Next(1, int.MaxValue));
                string codeFragment = String.Join(" ", _statements);
                string statement    = null;
                switch (_language)
                {
                case ChoCodeProviderLanguage.VB:
                    statement = String.Format("Public Class {1} {0} Public Function Execute({3} As {4}) as Object {0} {2} {0} End Function {0} End Class", Environment.NewLine, className, codeFragment, paramName, paramType);
                    break;

                default:
                    statement = String.Format("public class {0} {{ public object Execute({3} {2}) {{ {1}; }} }}", className, codeFragment, paramName, paramType);
                    break;
                }
                _targetFuncObj = Activator.CreateInstance(CreateType(className, codeFragment, statement));
            }
        }
        public object ExecuteFunc(params object[] args)
        {
            if (_targetFunc == null)
            {
                string className    = "ChoClass_{0}".FormatString(ChoIntRandom.Next(1, int.MaxValue));
                string codeFragment = String.Join(" ", _statements);
                string statement    = null;
                switch (_language)
                {
                case ChoCodeProviderLanguage.VB:
                    statement = String.Format("Public Class {1} {0} Public Function Execute(args As Object()) as Object {0} {2} {0} End Function {0} End Class", Environment.NewLine, className, codeFragment);
                    break;

                default:
                    statement = String.Format("public class {0} {{ public object Execute(object[] args) {{ {1}; }} }}", className, codeFragment);
                    break;
                }
                _targetFunc = Activator.CreateInstance(CreateType(className, codeFragment, statement));
            }
            return(_targetFunc.Execute(args));
        }
        public void ExecuteAction(params object[] args)
        {
            if (_targetAction == null)
            {
                string className    = "ChoClass_{0}".FormatString(ChoIntRandom.Next());
                string codeFragment = String.Join(" ", _statements);
                string statement    = null;
                switch (_language)
                {
                case ChoCodeProviderLanguage.VB:
                    statement = String.Format("Public Class {1} {0} Public Sub Execute(args As Object()) {0} {2} {0} End Sub {0} End Class", Environment.NewLine, className, codeFragment);
                    break;

                default:
                    statement = String.Format("public class {0} {{ public void Execute(object[] args) {{ {1}; }} }}", className, codeFragment);
                    break;
                }
                _targetAction = Activator.CreateInstance(CreateType(className, codeFragment, statement));
            }
            _targetAction.Execute(args);
        }
Beispiel #4
0
 public override object NextValue()
 {
     return(ChoIntRandom.Next(_minValue, _maxValue));
 }