partial void ReadConfiguration(LambdaExpressionConfiguration configuration) {
            Name = configuration.name;
            InternalType = Type.GetType(configuration.type);
            _parameters = new List<ParameterExpression>(configuration.arguments.Count);
          
            configuration.arguments
                         .ForEach(a => {
                             var parameter = a.Accept(this, Visitor).ReduceExtensions() as ParameterExpression;
                             var variable = new Variable(parameter);

                             VariablesStore.Add(variable.Expression.Name, variable);
                             _parameters.Add(parameter);
                         });

            Body = configuration.expression.Accept(this, Visitor);
        }
		public Expression Visit(IScope scope, LambdaExpressionConfiguration configuration) {
			return ExpressionReader.Lambda(configuration, scope, this);
		}
 public static bool LoadFromFile(string fileName, out LambdaExpressionConfiguration obj) {
     System.Exception exception = null;
     return LoadFromFile(fileName, out obj, out exception);
 }
		public static Expression Lambda(LambdaExpressionConfiguration configuration, IScope scope, IExpressionConfigurationVisitor visitor) {
			return new LambdaExpressionReader(configuration, scope, visitor);
		}
 public static bool Deserialize(string xml, out LambdaExpressionConfiguration obj) {
     System.Exception exception = null;
     return Deserialize(xml, out obj, out exception);
 }
 /// <summary>
 /// Deserializes xml markup from file into an LambdaExpressionConfiguration object
 /// </summary>
 /// <param name="fileName">string xml file to load and deserialize</param>
 /// <param name="obj">Output LambdaExpressionConfiguration object</param>
 /// <param name="exception">output Exception value if deserialize failed</param>
 /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
 public static bool LoadFromFile(string fileName, out LambdaExpressionConfiguration obj, out System.Exception exception) {
     exception = null;
     obj = default(LambdaExpressionConfiguration);
     try {
         obj = LoadFromFile(fileName);
         return true;
     }
     catch (System.Exception ex) {
         exception = ex;
         return false;
     }
 }
 /// <summary>
 /// Deserializes workflow markup into an LambdaExpressionConfiguration object
 /// </summary>
 /// <param name="xml">string workflow markup to deserialize</param>
 /// <param name="obj">Output LambdaExpressionConfiguration object</param>
 /// <param name="exception">output Exception value if deserialize failed</param>
 /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
 public static bool Deserialize(string xml, out LambdaExpressionConfiguration obj, out System.Exception exception) {
     exception = null;
     obj = default(LambdaExpressionConfiguration);
     try {
         obj = Deserialize(xml);
         return true;
     }
     catch (System.Exception ex) {
         exception = ex;
         return false;
     }
 }
 public njection_configuration() {
     this.lambdaField = new LambdaExpressionConfiguration();
 }
 public InvokeExpressionConfiguration() {
     this.expressionField = new LambdaExpressionConfiguration();
     this.argumentsField = new List<ParameterExpressionConfiguration>();
     this.nodeTypeField = ConfigurationNodeType.Invoke;
 }
		partial void ReadConfiguration(LambdaExpressionConfiguration configuration);
		internal LambdaExpressionReader(LambdaExpressionConfiguration configuration, IScope scope, IExpressionConfigurationVisitor visitor) 
			: base(scope, visitor) {

			_configuration = configuration;
			ReadConfiguration(configuration);	
		}