- if (type == null) {
- _deserializationError = "Unable to find the type " + createExpr.CreateType.BaseType;
- } else {
- object[] arguments = new object[createExpr.Parameters.Count];
- for (int i=0; i < createExpr.Parameters.Count; i++) {
- arguments[i] = this.DeserializeExpression (manager, null, createExpr.Parameters[i]);
- if (_deserializationError != null) {
- _deserializationErrorTrace = "Type to create: " + createExpr.CreateType.BaseType + System.Environment.NewLine +
- "Parameter Number: " + i.ToString () + System.Environment.NewLine +
- "Parameter Expression Type: " + createExpr.Parameters[i].GetType ().Name + System.Environment.NewLine +
- "Parameters Count: " + createExpr.Parameters.Count + System.Environment.NewLine +
- _deserializationErrorTrace;
- break;
- }
- }
- if (_deserializationError == null) {
- bool addToContainer = false;
- if (typeof(IComponent).IsAssignableFrom (type))
- addToContainer = true;
- deserialized = this.DeserializeInstance (manager, type, arguments, name, addToContainer);
- if (deserialized == null) {
- _deserializationError = "Unable to create an instance of type " + createExpr.CreateType.BaseType;
- _deserializationErrorTrace = "Type to create: " + createExpr.CreateType.BaseType + System.Environment.NewLine +
- "Name: " + name + System.Environment.NewLine +
- "addToContainer: " + addToContainer.ToString () + System.Environment.NewLine +
- "Parameters Count: " + createExpr.Parameters.Count + System.Environment.NewLine;
-
- for (int i=0; i < arguments.Length; i++) {
- _deserializationErrorTrace += "Parameter Number: " + i.ToString () + System.Environment.NewLine +
- "Parameter Type: " + (arguments[i] == null ? "null" : arguments[i].GetType ().Name) +
- System.Environment.NewLine +
- "Parameter " + i.ToString () + " Value: " + arguments[i].ToString () + System.Environment.NewLine;
- }
- }
- }
- }
+ object[] arguments = new object[createExpr.Parameters.Count];
+ for (int i=0; i < createExpr.Parameters.Count; i++)
+ arguments[i] = this.DeserializeExpression (manager, null, createExpr.Parameters[i]);
+ bool addToContainer = false;
+ if (typeof(IComponent).IsAssignableFrom (type))
+ addToContainer = true;
+ deserialized = this.DeserializeInstance (manager, type, arguments, name, addToContainer);