Example #1
0
        public static String GetObjectCreationExpression(IObjectInstance instance)
        {
            if (instance == null)
                return "null";

            StringBuilder code = new StringBuilder();

            if (instance.InstanceNeedsConstructor)
            {
                code.AppendFormat("new {0}(", instance.Instance.GetType().Name);

                var args = instance.CreationData.Arguments;
                for (int i = 0; i < args.Count; ++i )
                {
                    code.AppendFormat("{0}{1}", GetObjectCreationExpression(args[i]), i != args.Count-1? ", " : String.Empty);
                }

                    code.AppendFormat(")");
            }
            else
            {
                if (instance.Instance is String)
                    return "\"" + instance.Instance + "\"";
                else if (instance.Instance is char)
                    return "'" + instance.Instance + "'";
                else if (instance.Instance is Enum)
                    return instance.Instance.GetType().Name + "." + instance.Instance.ToString();
                else if (instance is NullObjectInstance)
                    return "null";
                else if (instance.Instance is bool)
                    return instance.ToString().ToLower();
                else if (instance.Instance is Decimal)
                    return instance.Instance.ToString() + "M";
                else
                    return instance.Instance.ToString();
            }

            return code.ToString();
        }