in src/StructuredLogger/BinaryLogger/BuildEventArgsReader.cs [882:976]
private BuildEventArgsFields ReadBuildEventArgsFields(bool readImportance = false)
{
BuildEventArgsFieldFlags flags = (BuildEventArgsFieldFlags)ReadInt32();
var result = new BuildEventArgsFields();
result.Flags = flags;
if ((flags & BuildEventArgsFieldFlags.Message) != 0)
{
result.Message = ReadDeduplicatedString();
}
if ((flags & BuildEventArgsFieldFlags.BuildEventContext) != 0)
{
result.BuildEventContext = ReadBuildEventContext();
}
if ((flags & BuildEventArgsFieldFlags.ThreadId) != 0)
{
result.ThreadId = ReadInt32();
}
if ((flags & BuildEventArgsFieldFlags.HelpKeyword) != 0)
{
result.HelpKeyword = ReadDeduplicatedString();
}
if ((flags & BuildEventArgsFieldFlags.SenderName) != 0)
{
result.SenderName = ReadDeduplicatedString();
}
if ((flags & BuildEventArgsFieldFlags.Timestamp) != 0)
{
result.Timestamp = ReadDateTime();
}
if ((flags & BuildEventArgsFieldFlags.Subcategory) != 0)
{
result.Subcategory = ReadDeduplicatedString();
}
if ((flags & BuildEventArgsFieldFlags.Code) != 0)
{
result.Code = ReadDeduplicatedString();
}
if ((flags & BuildEventArgsFieldFlags.File) != 0)
{
result.File = ReadDeduplicatedString();
}
if ((flags & BuildEventArgsFieldFlags.ProjectFile) != 0)
{
result.ProjectFile = ReadDeduplicatedString();
}
if ((flags & BuildEventArgsFieldFlags.LineNumber) != 0)
{
result.LineNumber = ReadInt32();
}
if ((flags & BuildEventArgsFieldFlags.ColumnNumber) != 0)
{
result.ColumnNumber = ReadInt32();
}
if ((flags & BuildEventArgsFieldFlags.EndLineNumber) != 0)
{
result.EndLineNumber = ReadInt32();
}
if ((flags & BuildEventArgsFieldFlags.EndColumnNumber) != 0)
{
result.EndColumnNumber = ReadInt32();
}
if ((flags & BuildEventArgsFieldFlags.Arguments) != 0)
{
int count = ReadInt32();
object[] arguments = new object[count];
for (int i = 0; i < count; i++)
{
arguments[i] = ReadDeduplicatedString();
}
result.Arguments = arguments;
}
if ((fileFormatVersion < 13 && readImportance) || (fileFormatVersion >= 13 && (flags & BuildEventArgsFieldFlags.Importance) != 0))
{
result.Importance = (MessageImportance)ReadInt32();
}
return result;
}