public object Execute(Expression expression) { var dataParameter = new RemoteDataParameter(); var methodCallExpression = expression as MethodCallExpression; dataParameter.Executor = methodCallExpression.Method.Name; var processor = RemoteObjectContext.DefaultObjectResolver.GetInstance <IExpressionProcessor>(); processor.DataParameter = dataParameter; processor.Writer = RemoteObjectContext.DefaultObjectResolver.GetInstance <IExpressionWriter>(); processor.Build(methodCallExpression); return(DataFetcher.GetObject(dataParameter, methodCallExpression.Method.ReturnType)); }