+ if (namedProperties == null)
+ throw new ArgumentNullException ("namedProperties");
+ if (propertyValues == null)
+ throw new ArgumentNullException ("propertyValues");
+ if (namedFields == null)
+ throw new ArgumentNullException ("namedFields");
+ if (fieldValues == null)
+ throw new ArgumentNullException ("fieldValues");
+ if (con.GetParameterCount () != constructorArgs.Length)
+ throw new ArgumentException ("Parameter count does not match " +
+ "passed in argument value count.");
+ if (namedProperties.Length != propertyValues.Length)
+ throw new ArgumentException ("Array lengths must be the same.",
+ "namedProperties, propertyValues");
+ if (namedFields.Length != fieldValues.Length)
+ throw new ArgumentException ("Array lengths must be the same.",
+ "namedFields, fieldValues");
+ if ((con.Attributes & MethodAttributes.Static) == MethodAttributes.Static ||
+ (con.Attributes & MethodAttributes.Private) == MethodAttributes.Private)
+ throw new ArgumentException ("Cannot have private or static constructor.");
+