public byte[] Encode (bool unicode)
{
var buf = new byte[CalculateSize (unicode)];
int index = 0;
if (!string.IsNullOrEmpty (DomainName))
EncodeString (buf, ref index, 2, DomainName, unicode);
if (!string.IsNullOrEmpty (ServerName))
EncodeString (buf, ref index, 1, ServerName, unicode);
if (!string.IsNullOrEmpty (DnsDomainName))
EncodeString (buf, ref index, 4, DnsDomainName, unicode);
if (!string.IsNullOrEmpty (DnsServerName))
EncodeString (buf, ref index, 3, DnsServerName, unicode);
if (!string.IsNullOrEmpty (DnsTreeName))
EncodeString (buf, ref index, 5, DnsTreeName, unicode);
if (Flags.HasValue)
EncodeFlags (buf, ref index, 6, Flags.Value);
if (Timestamp != 0)
EncodeTimestamp (buf, ref index, 7, Timestamp);
if (!string.IsNullOrEmpty (TargetName))
EncodeString (buf, ref index, 9, TargetName, unicode);
return buf;
}
}