partial void ReadConfiguration(InvokeExpressionConfiguration configuration) {
      _expression = configuration.expression.Accept(Scope, Visitor);
      _arguments = configuration.arguments.Select(a => a.Accept(Scope, Visitor));
      InternalType = Type.GetType(configuration.type);
         
     Contract.Assert(InternalType.Equals(GetReturnType(_expression.Type)));
 }
		public Expression Visit(IScope scope, InvokeExpressionConfiguration configuration) {
			return ExpressionReader.Invoke(configuration, scope, this);
		}
		public static Expression Invoke(InvokeExpressionConfiguration configuration, IScope scope, IExpressionConfigurationVisitor visitor) {
			return new InvokeExpressionReader(configuration, scope, visitor);
		}
 public static bool LoadFromFile(string fileName, out InvokeExpressionConfiguration obj) {
     System.Exception exception = null;
     return LoadFromFile(fileName, out obj, out exception);
 }
 /// <summary>
 /// Deserializes xml markup from file into an InvokeExpressionConfiguration object
 /// </summary>
 /// <param name="fileName">string xml file to load and deserialize</param>
 /// <param name="obj">Output InvokeExpressionConfiguration 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 InvokeExpressionConfiguration obj, out System.Exception exception) {
     exception = null;
     obj = default(InvokeExpressionConfiguration);
     try {
         obj = LoadFromFile(fileName);
         return true;
     }
     catch (System.Exception ex) {
         exception = ex;
         return false;
     }
 }
 public static bool Deserialize(string xml, out InvokeExpressionConfiguration obj) {
     System.Exception exception = null;
     return Deserialize(xml, out obj, out exception);
 }
 /// <summary>
 /// Deserializes workflow markup into an InvokeExpressionConfiguration object
 /// </summary>
 /// <param name="xml">string workflow markup to deserialize</param>
 /// <param name="obj">Output InvokeExpressionConfiguration 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 InvokeExpressionConfiguration obj, out System.Exception exception) {
     exception = null;
     obj = default(InvokeExpressionConfiguration);
     try {
         obj = Deserialize(xml);
         return true;
     }
     catch (System.Exception ex) {
         exception = ex;
         return false;
     }
 }
		partial void ReadConfiguration(InvokeExpressionConfiguration configuration);
		internal InvokeExpressionReader(InvokeExpressionConfiguration configuration, IScope scope, IExpressionConfigurationVisitor visitor) 
			: base(scope, visitor) {

			_configuration = configuration;
			ReadConfiguration(configuration);	
		}