public bool AppendDataMember(StringBuilderWrapper sb, MetadataDataMember dmMeta, int dataMemberIndex)
{
if (dmMeta == null)
{
if (Config.AddDataContractAttributes)
{
sb.AppendLine(Config.AddIndexesToDataMembers
? $"[DataMember(Order={dataMemberIndex})]"
: "[DataMember]");
return true;
}
return false;
}
var dmArgs = "";
if (dmMeta.Name != null
|| dmMeta.Order != null
|| dmMeta.IsRequired != null
|| dmMeta.EmitDefaultValue != null
|| Config.AddIndexesToDataMembers)
{
if (dmMeta.Name != null)
dmArgs = $"Name={dmMeta.Name.QuotedSafeValue()}";
if (dmMeta.Order != null || Config.AddIndexesToDataMembers)
{
if (dmArgs.Length > 0)
dmArgs += ", ";
dmArgs += $"Order={dmMeta.Order ?? dataMemberIndex}";
}
if (dmMeta.IsRequired != null)
{
if (dmArgs.Length > 0)
dmArgs += ", ";
dmArgs += $"IsRequired={dmMeta.IsRequired.ToString().ToLower()}";
}
if (dmMeta.EmitDefaultValue != null)
{
if (dmArgs.Length > 0)
dmArgs += ", ";
dmArgs += $"EmitDefaultValue={dmMeta.EmitDefaultValue.ToString().ToLower()}";
}
dmArgs = $"({dmArgs})";
}
sb.AppendLine($"[DataMember{dmArgs}]");
return true;
}
}