예제 #1
0
        public unsafe void GetNestedClassProps()
        {
            var provider = new SymWriterMetadataProvider1();
            var adapter  = new SymWriterMetadataAdapter(provider);

            var buffer = new char[15];

            for (int i = 0; i < buffer.Length; i++)
            {
                buffer[i] = 'x';
            }

            fixed(char *bufferPtr = buffer)
            {
                Assert.Equal(HResult.S_OK, adapter.GetNestedClassProps(1, out int enclosingClass));
                Assert.Equal(11, enclosingClass);
            }
        }
예제 #2
0
        public unsafe void GetMethodProps()
        {
            var provider = new SymWriterMetadataProvider1();
            var adapter  = new SymWriterMetadataAdapter(provider);

            var buffer = new char[15];

            for (int i = 0; i < buffer.Length; i++)
            {
                buffer[i] = 'x';
            }

            fixed(char *bufferPtr = buffer)
            {
                int actualLength;
                int declaringTypeDef;

                Assert.Equal(HResult.S_OK, adapter.GetMethodProps(1, &declaringTypeDef, bufferPtr + 2, 4, &actualLength, null, null, null, null, null));
                AssertEx.Equal(new char[] { 'x', 'x', 'M', 'e', 't', '\0', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x' }, buffer);
                Assert.Equal(3, actualLength);
                Assert.Equal(123, declaringTypeDef);
            }
        }
예제 #3
0
        public unsafe void GetTypeDefProps()
        {
            var provider = new SymWriterMetadataProvider1();
            var adapter  = new SymWriterMetadataAdapter(provider);

            var buffer = new char[15];

            for (int i = 0; i < buffer.Length; i++)
            {
                buffer[i] = 'x';
            }

            fixed(char *bufferPtr = buffer)
            {
                int            actualLength;
                TypeAttributes attributes;

                Assert.Equal(HResult.S_OK, adapter.GetTypeDefProps(1, bufferPtr + 2, 4, &actualLength, &attributes, null));
                AssertEx.Equal(new char[] { 'x', 'x', 'N', 'a', 'm', '\0', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x' }, buffer);
                Assert.Equal(3, actualLength);
                Assert.Equal(TypeAttributes.Abstract, attributes);
            }
        }