public static Response FromArray(byte[] message)
{
Header header = Header.FromArray(message);
int offset = header.Size;
if (!header.Response || header.QuestionCount == 0)
{
throw new ArgumentException("Invalid response message");
}
if (header.Truncated)
{
return(new Response(header,
Question.GetAllFromArray(message, offset, header.QuestionCount),
new List <IResourceRecord>(),
new List <IResourceRecord>(),
new List <IResourceRecord>()));
}
return(new Response(header,
Question.GetAllFromArray(message, offset, header.QuestionCount, out offset),
ResourceRecordFactory.GetAllFromArray(message, offset, header.AnswerRecordCount, out offset),
ResourceRecordFactory.GetAllFromArray(message, offset, header.AuthorityRecordCount, out offset),
ResourceRecordFactory.GetAllFromArray(message, offset, header.AdditionalRecordCount, out offset)));
}