Exemplo n.º 1
0
		public unsafe static UTF8String GetUtf8Name(IMetaDataImport mdi, uint token) {
			if (mdi == null)
				return null;
			IntPtr pszUtf8NamePtr;
			int hr = mdi.GetNameFromToken(token, out pszUtf8NamePtr);
			if (hr != 0 || pszUtf8NamePtr == IntPtr.Zero)
				return null;
			const int MAX_LEN = 0x1000;
			byte* p = (byte*)pszUtf8NamePtr;
			for (int i = 0; i < MAX_LEN; i++, p++) {
				if (*p == 0)
					break;
			}
			byte[] buf = new byte[p - (byte*)pszUtf8NamePtr];
			Marshal.Copy(pszUtf8NamePtr, buf, 0, buf.Length);
			return new UTF8String(buf);
		}