public static unsafe AssemblyHashAlgorithm? GetAssemblyHashAlgorithm(IMetaDataAssemblyImport mdai, uint token) { if (mdai == null) return null; uint ulHashAlgId; int hr = mdai.GetAssemblyProps(token, IntPtr.Zero, IntPtr.Zero, new IntPtr(&ulHashAlgId), IntPtr.Zero, 0, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero); if (hr != 0) return null; return (AssemblyHashAlgorithm)ulHashAlgId; }
public static unsafe AssemblyAttributes? GetAssemblyAttributes(IMetaDataAssemblyImport mdai, uint token) { if (mdai == null) return null; uint dwAssemblyFlags; int hr = mdai.GetAssemblyProps(token, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, 0, IntPtr.Zero, IntPtr.Zero, new IntPtr(&dwAssemblyFlags)); if (hr != 0) return null; return (AssemblyAttributes)dwAssemblyFlags; }
private const int GENMAN_ENUM_TOKEN_BUF_SIZE = 16; // 128 from genman seems too big. /// <summary> /// Construct an instance for a source file. /// </summary> /// <param name="sourceFile">The assembly.</param> internal AssemblyInformation(string sourceFile) { // Extra checks for PInvoke-destined data. ErrorUtilities.VerifyThrowArgumentNull(sourceFile, "sourceFile"); _sourceFile = sourceFile; // Create the metadata dispenser and open scope on the source file. _metadataDispenser = (IMetaDataDispenser)new CorMetaDataDispenser(); _assemblyImport = (IMetaDataAssemblyImport)_metadataDispenser.OpenScope(sourceFile, 0, ref s_importerGuid); }
private MetadataReader(string path) { _path = path; // Create the metadata dispenser and open scope on the source file. _metaDispenser = (IMetaDataDispenser)new CorMetaDataDispenser(); object obj; int hr = _metaDispenser.OpenScope(path, 0, ref s_importerGuid, out obj); if (hr == 0) _assemblyImport = (IMetaDataAssemblyImport)obj; }
private const int GENMAN_ENUM_TOKEN_BUF_SIZE = 16; // 128 from genman seems too big. /// <summary> /// Construct an instance for a source file. /// </summary> /// <param name="sourceFile">The assembly.</param> internal AssemblyInformation(string sourceFile) { // Extra checks for PInvoke-destined data. ErrorUtilities.VerifyThrowArgumentNull(sourceFile, "sourceFile"); _sourceFile = sourceFile; // Create the metadata dispenser and open scope on the source file. _metadataDispenser = (IMetaDataDispenser) new CorMetaDataDispenser(); _assemblyImport = (IMetaDataAssemblyImport)_metadataDispenser.OpenScope(sourceFile, 0, ref s_importerGuid); }
private MetadataReader(string path) { object obj2; this._path = path; this._metaDispenser = (IMetaDataDispenser) new CorMetaDataDispenser(); if (this._metaDispenser.OpenScope(path, 0, ref _importerGuid, out obj2) == 0) { this._assemblyImport = (IMetaDataAssemblyImport) obj2; } }
public Assembly(string assemblyName, string frameworkDir, string assemblyDir) { // resolved assembly path string assemblyPath; string name = assemblyName; //intermediate objects object rawMetaDataImportScope = null; object rawMetaDataAsmImportScope = null; // save framework and assembly directories for further use this.frameworkDir = frameworkDir; this.assemblyDir = assemblyDir; // First step: try to find the actual file if (System.IO.Path.GetExtension(name) != ".dll") { name += ".dll"; } if (System.IO.File.Exists(System.IO.Path.Combine(assemblyDir, name))) { assemblyPath = System.IO.Path.Combine(assemblyDir, name); } else if (System.IO.File.Exists(System.IO.Path.Combine(frameworkDir, name))) { assemblyPath = System.IO.Path.Combine(frameworkDir, name); } else { assemblyPath = System.IO.Path.Combine(".", name); } // ??? At this point, we should try the GAC instead ??? // open the assembly to retrieve the two COM interfaces to access data try { dispenser.OpenScope (assemblyPath, 0x10, ref gMetaDataImportGuid, out rawMetaDataImportScope); dispenser.OpenScope (assemblyPath, 0x10, ref gMetaDataAsmImportGuid, out rawMetaDataAsmImportScope); } catch { throw new System.ArgumentException("Cannot open " + assemblyPath + " or not a valid assembly."); } // let's convert the intermediate objects into the expected COM interfaces this.importIntf = (IMetaDataImport2)rawMetaDataImportScope; this.asmImportIntf = (IMetaDataAssemblyImport)rawMetaDataAsmImportScope; // now that we have the COM interfaces OK, we can retrieve the assembly // information this.InitInformation(); }
private MetadataReader(string path) { object obj2; this._path = path; this._metaDispenser = (IMetaDataDispenser) new CorMetaDataDispenser(); if (this._metaDispenser.OpenScope(path, 0, ref _importerGuid, out obj2) == 0) { this._assemblyImport = (IMetaDataAssemblyImport)obj2; } }
private MetadataReader(string path) { _path = path; // Create the metadata dispenser and open scope on the source file. _metaDispenser = (IMetaDataDispenser) new CorMetaDataDispenser(); int hr = _metaDispenser.OpenScope(path, 0, ref s_importerGuid, out object obj); if (hr == 0) { _assemblyImport = (IMetaDataAssemblyImport)obj; } }
public static unsafe PublicKey GetAssemblyPublicKey(IMetaDataAssemblyImport mdai, uint token) { if (mdai == null) return null; IntPtr pbPublicKey; uint cbPublicKey; int hr = mdai.GetAssemblyProps(token, new IntPtr(&pbPublicKey), new IntPtr(&cbPublicKey), IntPtr.Zero, IntPtr.Zero, 0, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero); if (hr != 0 || pbPublicKey == IntPtr.Zero) return null; var data = new byte[cbPublicKey]; Marshal.Copy(pbPublicKey, data, 0, data.Length); return new PublicKey(data); }
public void Close() { if (this._assemblyImport != null) { Marshal.ReleaseComObject(this._assemblyImport); } if (this._metaDispenser != null) { Marshal.ReleaseComObject(this._metaDispenser); } this._attributes = null; this._metaDispenser = null; this._assemblyImport = null; }
public static unsafe byte[] GetAssemblyRefHash(IMetaDataAssemblyImport mdai, uint token) { if (mdai == null) return null; IntPtr pbHashValue; uint cbHashValue; int hr = mdai.GetAssemblyRefProps(token, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, 0, IntPtr.Zero, IntPtr.Zero, new IntPtr(&pbHashValue), new IntPtr(&cbHashValue), IntPtr.Zero); if (hr != 0 || pbHashValue == IntPtr.Zero) return null; var data = new byte[cbHashValue]; Marshal.Copy(pbHashValue, data, 0, data.Length); return data; }
/// <summary> /// Construct an instance for a source file. /// </summary> /// <param name="sourceFile">The assembly.</param> internal AssemblyInformation(string sourceFile) { // Extra checks for PInvoke-destined data. ErrorUtilities.VerifyThrowArgumentNull(sourceFile, "sourceFile"); _sourceFile = sourceFile; #if FEATURE_ASSEMBLY_LOADFROM if (NativeMethodsShared.IsWindows) { // Create the metadata dispenser and open scope on the source file. _metadataDispenser = (IMetaDataDispenser) new CorMetaDataDispenser(); _assemblyImport = (IMetaDataAssemblyImport)_metadataDispenser.OpenScope(sourceFile, 0, ref s_importerGuid); } else { _assembly = Assembly.ReflectionOnlyLoadFrom(sourceFile); } #endif }
public unsafe static uint? GetManifestResourceImplementationToken(IMetaDataAssemblyImport mdai, uint token) { if (mdai == null) return null; uint tkImplementation; int hr = mdai.GetManifestResourceProps(token, IntPtr.Zero, 0, IntPtr.Zero, new IntPtr(&tkImplementation), IntPtr.Zero, IntPtr.Zero); return hr == 0 ? tkImplementation : (uint?)null; }
public unsafe static bool GetManifestResourceProps(IMetaDataAssemblyImport mdai, uint token, out uint offset, out uint implementation, out ManifestResourceAttributes attrs) { offset = 0; implementation = 0; attrs = 0; if (mdai == null) return false; uint tkImplementation, dwOffset, dwResourceFlags; int hr = mdai.GetManifestResourceProps(token, IntPtr.Zero, 0, IntPtr.Zero, new IntPtr(&tkImplementation), new IntPtr(&dwOffset), new IntPtr(&dwResourceFlags)); if (hr != 0) return false; implementation = tkImplementation; offset = dwOffset; attrs = (ManifestResourceAttributes)dwResourceFlags; return true; }
public unsafe static string GetManifestResourceName(IMetaDataAssemblyImport mdai, uint token) { if (mdai == null) return null; char[] nameBuf = null; uint chName; int hr = mdai.GetManifestResourceProps(token, IntPtr.Zero, 0, new IntPtr(&chName), IntPtr.Zero, IntPtr.Zero, IntPtr.Zero); if (hr >= 0 && chName != 0) { nameBuf = new char[chName]; fixed (char* p = &nameBuf[0]) hr = mdai.GetManifestResourceProps(token, new IntPtr(p), (uint)nameBuf.Length, new IntPtr(&chName), IntPtr.Zero, IntPtr.Zero, IntPtr.Zero); } if (hr < 0) return null; return chName <= 1 ? string.Empty : new string(nameBuf, 0, (int)chName - 1); }
public unsafe static uint[] GetManifestResourceRids(IMetaDataAssemblyImport mdai) { var mdi = mdai as IMetaDataImport; if (mdi == null) return new uint[0]; IntPtr iter = IntPtr.Zero; try { uint cTokens; int hr = mdai.EnumManifestResources(ref iter, IntPtr.Zero, 0, out cTokens); if (hr < 0) return new uint[0]; uint ulCount = 0; hr = mdi.CountEnum(iter, ref ulCount); if (hr < 0 || ulCount == 0) return new uint[0]; hr = mdi.ResetEnum(iter, 0); if (hr < 0) return new uint[0]; uint[] tokens = new uint[ulCount]; fixed (uint* p = &tokens[0]) hr = mdai.EnumManifestResources(ref iter, new IntPtr(p), (uint)tokens.Length, out cTokens); if (hr < 0) return new uint[0]; return tokens; } finally { if (iter != IntPtr.Zero) mdai.CloseEnum(iter); } }
public unsafe static bool GetExportedTypeProps(IMetaDataAssemblyImport mdai, uint token, out uint implementation, out uint typeDefId, out TypeAttributes attrs) { implementation = 0; typeDefId = 0; attrs = 0; if (mdai == null) return false; uint tkImplementation, tkTypeDef, dwExportedTypeFlags; int hr = mdai.GetExportedTypeProps(token, IntPtr.Zero, 0, IntPtr.Zero, new IntPtr(&tkImplementation), new IntPtr(&tkTypeDef), new IntPtr(&dwExportedTypeFlags)); if (hr != 0) return false; implementation = tkImplementation; typeDefId = tkTypeDef; attrs = (TypeAttributes)dwExportedTypeFlags; return true; }
public unsafe static byte[] GetFileHash(IMetaDataAssemblyImport mdai, uint token) { if (mdai == null) return null; IntPtr pbHashValue; uint cbHashValue; int hr = mdai.GetFileProps(token, IntPtr.Zero, 0, IntPtr.Zero, new IntPtr(&pbHashValue), new IntPtr(&cbHashValue), IntPtr.Zero); if (hr != 0) return null; var sig = new byte[cbHashValue]; Marshal.Copy(pbHashValue, sig, 0, sig.Length); return sig; }
internal AssemblyInformation(string sourceFile) { Microsoft.Build.Shared.ErrorUtilities.VerifyThrowArgumentNull(sourceFile, "sourceFile"); this.metadataDispenser = (IMetaDataDispenser) new CorMetaDataDispenser(); this.assemblyImport = (IMetaDataAssemblyImport)this.metadataDispenser.OpenScope(sourceFile, 0, ref importerGuid); }
public unsafe static Version GetAssemblyVersionAndLocale(IMetaDataAssemblyImport mdai, uint token, out string locale) { locale = null; if (mdai == null) return null; ASSEMBLYMETADATA data; char[] nameBuf = null; int hr = mdai.GetAssemblyProps(token, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, 0, IntPtr.Zero, new IntPtr(&data), IntPtr.Zero); if (hr >= 0 && data.cbLocale != 0) { nameBuf = new char[data.cbLocale]; fixed (char* p = &nameBuf[0]) { data.szLocale = new IntPtr(p); hr = mdai.GetAssemblyProps(token, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, 0, IntPtr.Zero, new IntPtr(&data), IntPtr.Zero); } } if (hr != 0) return null; locale = data.cbLocale <= 1 ? string.Empty : new string(nameBuf, 0, (int)data.cbLocale - 1); return new Version(data.usMajorVersion, data.usMinorVersion, data.usBuildNumber, data.usRevisionNumber); }
public unsafe static PublicKeyBase GetAssemblyRefPublicKeyOrToken(IMetaDataAssemblyImport mdai, uint token, out AssemblyAttributes attrs) { attrs = 0; if (mdai == null) return null; IntPtr pbPublicKeyOrToken; uint cbPublicKeyOrToken, dwAssemblyFlags; int hr = mdai.GetAssemblyRefProps(token, new IntPtr(&pbPublicKeyOrToken), new IntPtr(&cbPublicKeyOrToken), IntPtr.Zero, 0, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, new IntPtr(&dwAssemblyFlags)); if (hr != 0) return null; attrs = (AssemblyAttributes)dwAssemblyFlags; if (pbPublicKeyOrToken == IntPtr.Zero) return null; var data = new byte[cbPublicKeyOrToken]; Marshal.Copy(pbPublicKeyOrToken, data, 0, data.Length); if ((dwAssemblyFlags & (uint)AssemblyAttributes.PublicKey) != 0) return new PublicKey(data); return new PublicKeyToken(data); }
internal static IEnumerable GetTypeRefNames(string assemblyLocation) { IMetaDataDispenser metaDataDispenser = new MetaDataDispenser() as IMetaDataDispenser; if (metaDataDispenser == null) { throw new InvalidOperationException(String.Format(SR.GetString(SR.Error_MetaDataInterfaceMissing), assemblyLocation, "IMetaDataDispenser")); } Guid guidMetaDataImport = new Guid(Guids.IID_IMetaDataImport); object metaDataImportObj = null; NativeMethods.ThrowOnFailure(metaDataDispenser.OpenScope(assemblyLocation, 0, ref guidMetaDataImport, out metaDataImportObj)); IMetaDataImport metaDataImport = metaDataImportObj as IMetaDataImport; if (metaDataImport == null) { throw new InvalidOperationException(String.Format(SR.GetString(SR.Error_MetaDataInterfaceMissing), assemblyLocation, "IMetaDataImport")); } IntPtr enumHandle = new IntPtr(); uint[] typeRefs = new uint[20]; uint typeRefCount = 0; try { do { NativeMethods.ThrowOnFailure((metaDataImport.EnumTypeRefs(ref enumHandle, typeRefs, (uint)typeRefs.Length, ref typeRefCount))); for (int typeRefIndex = 0; typeRefIndex < typeRefCount; typeRefIndex++) { IntPtr typeRefNamePtr = IntPtr.Zero; uint typeRefNameLength; uint resolutionScopeToken; NativeMethods.ThrowOnFailure(metaDataImport.GetTypeRefProps(typeRefs[typeRefIndex], out resolutionScopeToken, typeRefNamePtr, 0, out typeRefNameLength)); if (typeRefNameLength > 0) { string typeRefName = String.Empty; typeRefNamePtr = Marshal.AllocCoTaskMem((int)(2 * (typeRefNameLength + 1))); try { NativeMethods.ThrowOnFailure(metaDataImport.GetTypeRefProps(typeRefs[typeRefIndex], out resolutionScopeToken, typeRefNamePtr, typeRefNameLength, out typeRefNameLength)); } finally { typeRefName = Marshal.PtrToStringUni(typeRefNamePtr); Marshal.FreeCoTaskMem(typeRefNamePtr); } IMetaDataAssemblyImport metaDataAssemblyImport = metaDataImportObj as IMetaDataAssemblyImport; if (metaDataAssemblyImport == null) { throw new InvalidOperationException(String.Format(SR.GetString(SR.Error_MetaDataInterfaceMissing), assemblyLocation, "IMetaDataAssemblyImport")); } if (TokenTypeFromToken(resolutionScopeToken) == MetadataTokenType.AssemblyRef) { AssemblyMetadata assemblyMetadata; IntPtr publicKeyOrToken = IntPtr.Zero; uint publicKeyOrTokenSize; IntPtr assemblyName = IntPtr.Zero; uint assemblyNameSize; IntPtr hashValueBlob = IntPtr.Zero; uint hashValueSize; uint assemblyRefFlags; NativeMethods.ThrowOnFailure(metaDataAssemblyImport.GetAssemblyRefProps(resolutionScopeToken, out publicKeyOrToken, out publicKeyOrTokenSize, assemblyName, 0, out assemblyNameSize, out assemblyMetadata, out hashValueBlob, out hashValueSize, out assemblyRefFlags)); if (assemblyNameSize > 0) { assemblyName = Marshal.AllocCoTaskMem((int)(2 * (assemblyNameSize + 1))); } if (assemblyMetadata.localeSize > 0) { assemblyMetadata.locale = Marshal.AllocCoTaskMem((int)(2 * (assemblyMetadata.localeSize + 1))); } try { if (assemblyNameSize > 0 || assemblyMetadata.localeSize > 0) { NativeMethods.ThrowOnFailure(metaDataAssemblyImport.GetAssemblyRefProps(resolutionScopeToken, out publicKeyOrToken, out publicKeyOrTokenSize, assemblyName, assemblyNameSize, out assemblyNameSize, out assemblyMetadata, out hashValueBlob, out hashValueSize, out assemblyRefFlags)); } String publicKeyString = String.Empty; for (int pos = 0; pos < publicKeyOrTokenSize; pos++) { publicKeyString += String.Format("{0}", Marshal.ReadByte(publicKeyOrToken, pos).ToString("x2")); } yield return(String.Format("{0}, {1}, Version={2}.{3}.{4}.{5}, Culture={6}, PublicKeyToken={7}", typeRefName, Marshal.PtrToStringUni(assemblyName), assemblyMetadata.majorVersion, assemblyMetadata.minorVersion, assemblyMetadata.buildNumber, assemblyMetadata.revisionNumber, String.IsNullOrEmpty(Marshal.PtrToStringUni(assemblyMetadata.locale)) ? "neutral" : Marshal.PtrToStringUni(assemblyMetadata.locale), String.IsNullOrEmpty(publicKeyString) ? "null" : publicKeyString)); } finally { if (assemblyName != IntPtr.Zero && assemblyNameSize > 0) { Marshal.FreeCoTaskMem(assemblyName); assemblyName = IntPtr.Zero; } if (assemblyMetadata.locale != IntPtr.Zero && assemblyMetadata.localeSize > 0) { Marshal.FreeCoTaskMem(assemblyMetadata.locale); assemblyMetadata.locale = IntPtr.Zero; } } } } } }while (typeRefCount > 0); } finally { metaDataImport.CloseEnum(enumHandle); } yield break; }
public AssemblyMetaDataImport(string sourceFile) { this._assemblyImport = (IMetaDataAssemblyImport)this._metaDispenser.OpenScope(sourceFile, 0, ref _importerGuid); }
public void Close() { if (_assemblyImport != null) Marshal.ReleaseComObject(_assemblyImport); if (_metaDispenser != null) Marshal.ReleaseComObject(_metaDispenser); _attributes = null; _metaDispenser = null; _assemblyImport = null; }
internal static IEnumerable GetTypeRefNames(string assemblyLocation) { IMetaDataDispenser iteratorVariable0 = new MetaDataDispenser() as IMetaDataDispenser; if (iteratorVariable0 == null) { throw new InvalidOperationException(string.Format(SR.GetString("Error_MetaDataInterfaceMissing"), assemblyLocation, "IMetaDataDispenser")); } Guid riid = new Guid("7DAC8207-D3AE-4c75-9B67-92801A497D44"); object unknown = null; System.Workflow.Interop.NativeMethods.ThrowOnFailure(iteratorVariable0.OpenScope(assemblyLocation, 0, ref riid, out unknown)); IMetaDataImport iteratorVariable3 = unknown as IMetaDataImport; if (iteratorVariable3 == null) { throw new InvalidOperationException(string.Format(SR.GetString("Error_MetaDataInterfaceMissing"), assemblyLocation, "IMetaDataImport")); } IntPtr enumHandle = new IntPtr(); uint[] rTypeRefs = new uint[20]; uint typeRefs = 0; do { System.Workflow.Interop.NativeMethods.ThrowOnFailure(iteratorVariable3.EnumTypeRefs(ref enumHandle, rTypeRefs, (uint)rTypeRefs.Length, ref typeRefs)); for (int j = 0; j < typeRefs; j++) { uint iteratorVariable10; uint iteratorVariable9; IntPtr zero = IntPtr.Zero; System.Workflow.Interop.NativeMethods.ThrowOnFailure(iteratorVariable3.GetTypeRefProps(rTypeRefs[j], out iteratorVariable10, zero, 0, out iteratorVariable9)); if (iteratorVariable9 > 0) { string iteratorVariable11 = string.Empty; zero = Marshal.AllocCoTaskMem((int)(2 * (iteratorVariable9 + 1))); try { System.Workflow.Interop.NativeMethods.ThrowOnFailure(iteratorVariable3.GetTypeRefProps(rTypeRefs[j], out iteratorVariable10, zero, iteratorVariable9, out iteratorVariable9)); } finally { iteratorVariable11 = Marshal.PtrToStringUni(zero); Marshal.FreeCoTaskMem(zero); } IMetaDataAssemblyImport iteratorVariable12 = unknown as IMetaDataAssemblyImport; if (iteratorVariable12 == null) { throw new InvalidOperationException(string.Format(SR.GetString("Error_MetaDataInterfaceMissing"), assemblyLocation, "IMetaDataAssemblyImport")); } if (TokenTypeFromToken(iteratorVariable10) == MetadataTokenType.AssemblyRef) { uint iteratorVariable20; uint iteratorVariable19; uint iteratorVariable17; uint iteratorVariable15; AssemblyMetadata iteratorVariable13; IntPtr publicKeyOrToken = IntPtr.Zero; IntPtr assemblyName = IntPtr.Zero; IntPtr hashValueBlob = IntPtr.Zero; System.Workflow.Interop.NativeMethods.ThrowOnFailure(iteratorVariable12.GetAssemblyRefProps(iteratorVariable10, out publicKeyOrToken, out iteratorVariable15, assemblyName, 0, out iteratorVariable17, out iteratorVariable13, out hashValueBlob, out iteratorVariable19, out iteratorVariable20)); if (iteratorVariable17 > 0) { assemblyName = Marshal.AllocCoTaskMem((int)(2 * (iteratorVariable17 + 1))); } if (iteratorVariable13.localeSize > 0) { iteratorVariable13.locale = Marshal.AllocCoTaskMem((int)(2 * (iteratorVariable13.localeSize + 1))); } if ((iteratorVariable17 > 0) || (iteratorVariable13.localeSize > 0)) { System.Workflow.Interop.NativeMethods.ThrowOnFailure(iteratorVariable12.GetAssemblyRefProps(iteratorVariable10, out publicKeyOrToken, out iteratorVariable15, assemblyName, iteratorVariable17, out iteratorVariable17, out iteratorVariable13, out hashValueBlob, out iteratorVariable19, out iteratorVariable20)); } string iteratorVariable21 = string.Empty; for (int k = 0; k < iteratorVariable15; k++) { iteratorVariable21 = iteratorVariable21 + string.Format("{0}", Marshal.ReadByte(publicKeyOrToken, k).ToString("x2")); } yield return(string.Format("{0}, {1}, Version={2}.{3}.{4}.{5}, Culture={6}, PublicKeyToken={7}", new object[] { iteratorVariable11, Marshal.PtrToStringUni(assemblyName), iteratorVariable13.majorVersion, iteratorVariable13.minorVersion, iteratorVariable13.buildNumber, iteratorVariable13.revisionNumber, string.IsNullOrEmpty(Marshal.PtrToStringUni(iteratorVariable13.locale)) ? "neutral" : Marshal.PtrToStringUni(iteratorVariable13.locale), string.IsNullOrEmpty(iteratorVariable21) ? "null" : iteratorVariable21 })); } } } }while (typeRefs > 0); }
public AssemblyMetaDataImport(string sourceFile) { this._assemblyImport = (IMetaDataAssemblyImport) this._metaDispenser.OpenScope(sourceFile, 0, ref _importerGuid); }
public unsafe static FileAttributes? GetFileAttributes(IMetaDataAssemblyImport mdai, uint token) { if (mdai == null) return null; uint dwFileFlags; int hr = mdai.GetFileProps(token, IntPtr.Zero, 0, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, new IntPtr(&dwFileFlags)); return hr != 0 ? null : (FileAttributes?)dwFileFlags; }
public AssemblyMetaDataImport(string sourceFile) { this._metaDispenser = (IMetaDataDispenser) new CorMetaDataDispenser(); this._assemblyImport = (IMetaDataAssemblyImport)this._metaDispenser.OpenScope(sourceFile, 0U, ref AssemblyMetaDataImport._importerGuid); }