public static HierarchyId Read(BinaryReader reader)
        {
            var hid = new SqlHierarchyId();

            hid.Read(reader);
            return(Wrap(hid));
        }
        public void ReadResetsNull()
        {
            SqlHierarchyId z = SqlHierarchyId.Null;

            z.Read(new System.IO.BinaryReader(new System.IO.MemoryStream(Convert.FromBase64String("P6T6"))));
            Assert.IsFalse(z.IsNull);  // IsNull property should now be false
        }
示例#3
0
        public SqlHierarchyId GetHierarchyId(int i)
        {
            var udt = new SqlHierarchyId();

            using (var strm = sqlReader.GetStream(i))
            {
                var bytes = GetAllBytes(strm, 892);
                using (var ms = new MemoryStream(bytes))
                    using (var bReader = new BinaryReader(ms))
                    {
                        var len = ms.Length;
                        udt.Read(bReader);
                    }
            }
            return(udt);
        }
        public static SqlHierarchyId ToSqlHierarchyId(this byte[] value)
        {
            if (value == null)
            {
                return(SqlHierarchyId.Null);
            }
            using (var stream = new MemoryStream(value, false))
            {
                using (var reader = new BinaryReader(stream))
                {
                    SqlHierarchyId id = SqlHierarchyId.Null;

                    id.Read(reader);

                    return(id);
                }
            }
        }
示例#5
0
        public void FailToReadFromInvalidBinaryStream()
        {
            var stream    = new MemoryStream();
            var writer    = new BinaryWriter(stream, System.Text.Encoding.UTF8, true);
            var hierarchy = SqlHierarchyId.Parse(new System.Data.SqlTypes.SqlString("/1/"));

            hierarchy.Write(writer);
            //Add extra bytes after
            for (int i = 0; i < 10; i++)
            {
                writer.Write(i);
            }
            writer.Close();
            stream.Position = 0;
            var reader     = new BinaryReader(stream);
            var hierarchy2 = new SqlHierarchyId();

            AssertEx.ThrowsException(() => hierarchy2.Read(reader), typeof(HierarchyIdException), "24000: SqlHierarchyId operation failed because HierarchyId object was constructed from an invalid binary string. ");
        }