MSDN.WhiteKnight - Stack Overflow answers
Ответ на "How to determine whether a DLL is a managed assembly or native (prevent loading a native dll)?"
Answer 74839545
Modern way using System.Reflection.Metadata (included in .NET Core and .NET 5+, or installed as a NuGet package on .NET Framework):
using System; using System.Collections.Generic; using System.IO; using System.Reflection.Metadata; using System.Reflection.PortableExecutable; //... static bool IsAssembly(string path) { using var fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); // Try to read CLI metadata from the PE file. using var peReader = new PEReader(fs); if (!peReader.HasMetadata) { return false; // File does not have CLI metadata. } // Check that file has an assembly manifest. MetadataReader reader = peReader.GetMetadataReader(); return reader.IsAssembly; }
Source: https://learn.microsoft.com/en-us/dotnet/standard/assembly/identify#using-the-pereader-class
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.