private void DoTest(byte[] multiRecord, params byte[][] expectedRecords) { byte[][] records = ServiceRecordParser.SplitSearchAttributeResult(multiRecord); Assert.AreEqual(expectedRecords.Length, records.Length, "Record count"); for (int i = 0; i < expectedRecords.Length; ++i) { Assert.AreEqual(expectedRecords[i], records[i], String.Format("Record content -- record index {0}/{1}.", i, expectedRecords.Length)); } }
/// <summary> /// Run an SDP query on the device’s Service Discovery Database, /// returning the raw byte rather than a parsed record. /// </summary> /// - /// <remarks> /// If the device isn’t accessible a <see cref="T:System.Net.Sockets.SocketException"/> /// with <see cref="P:System.Net.Sockets.SocketException.ErrorCode"/> /// 10108 (0x277C) occurs. /// </remarks> /// - /// <param name="service">The UUID to search for, as a <see cref="T:System.Guid"/>. /// </param> /// - /// <returns>An array of array of <see cref="T:System.Byte"/>.</returns> /// - /// <exception cref="T:System.Net.Sockets.SocketException"> /// The query failed. /// </exception> public byte[][] GetServiceRecordsUnparsed(Guid service) { byte[][] result = GetServiceRecordsUnparsedWindowsRaw(service); #if NETCF if (Environment.OSVersion.Platform == PlatformID.WinCE) { if (result.Length != 0) { System.Diagnostics.Debug.Assert(result.Length == 1, "Expect one multi-record item on CE."); result = ServiceRecordParser.SplitSearchAttributeResult(result[0]); } } #endif return result; }