internal string ToString(bool typed)
{
if (ArgumentType.IsEnum)
return String.Format(CultureInfo.CurrentCulture, typed ? "{0}" : "({1}){0}", Value, ArgumentType.FullName);
else if (Value == null)
return String.Format(CultureInfo.CurrentCulture, typed ? "null" : "({0})null", ArgumentType.Name);
else if (ArgumentType == typeof(string))
return String.Format(CultureInfo.CurrentCulture, "\"{0}\"", Value);
else if (ArgumentType == typeof(char))
return String.Format(CultureInfo.CurrentCulture, "'{0}'", Value);
else if (ArgumentType == typeof(Type))
return String.Format(CultureInfo.CurrentCulture, "typeof({0})", ((Type)Value).FullName);
else if (ArgumentType.IsArray)
{
string result = null;
IList<CustomAttributeTypedArgument> array = Value as IList<CustomAttributeTypedArgument>;
Type elementType = ArgumentType.GetElementType();
result = String.Format(CultureInfo.CurrentCulture, @"new {0}[{1}] {{ ", elementType.IsEnum ? elementType.FullName : elementType.Name, array.Count);
for (int i = 0; i < array.Count; i++)
result += String.Format(CultureInfo.CurrentCulture, i == 0 ? "{0}" : ", {0}", array[i].ToString(elementType != typeof(object)));
return result += " }";
}
return String.Format(CultureInfo.CurrentCulture, typed ? "{0}" : "({1}){0}", Value, ArgumentType.Name);
}
public override int GetHashCode()