Пример #1
0
        public void BinaryProp()
        {
            using (ArrayPtr arrayPtr = MarshalEx.ArrayToNative <int>(10))
            {
                int chvo = 99;
                m_ISilDataAccess.BinaryPropRgb(1112, 2221, ArrayPtr.Null, 0, out chvo);
                Assert.AreEqual(0, chvo);

                byte[] prgb = new byte[] { 3, 4, 5 };
                m_IVwCacheDa.CacheBinaryProp(1112, 2221, prgb, prgb.Length);
                m_ISilDataAccess.BinaryPropRgb(1112, 2221, arrayPtr, 10, out chvo);
                byte[] prgbNew = MarshalEx.NativeToArray <byte>(arrayPtr, chvo);
                Assert.AreEqual(prgb.Length, prgbNew.Length);
                for (int i = 0; i < prgbNew.Length; i++)
                {
                    Assert.AreEqual(prgb[i], prgbNew[i]);
                }

                byte[] prgb2 = new byte[] { 6, 7, 8, 9 };
                m_IVwCacheDa.CacheBinaryProp(1112, 2221, prgb2, prgb2.Length);
                m_ISilDataAccess.BinaryPropRgb(1112, 2221, arrayPtr, 10, out chvo);
                prgbNew = MarshalEx.NativeToArray <byte>(arrayPtr, chvo);
                Assert.AreEqual(prgb2.Length, prgbNew.Length);
                for (int i = 0; i < prgbNew.Length; i++)
                {
                    Assert.AreEqual(prgb2[i], prgbNew[i]);
                }
            }
        }