NServiceBus.Image.GetCompilationMode C# (CSharp) Method

GetCompilationMode() private method

private GetCompilationMode ( ) : CompilationMode
return CompilationMode
        CompilationMode GetCompilationMode()
        {
            if (stream.Length < 318)
            {
                return CompilationMode.NativeOrInvalid;
            }
            if (ReadUInt16() != 0x5a4d)
            {
                return CompilationMode.NativeOrInvalid;
            }
            if (!Advance(58))
            {
                return CompilationMode.NativeOrInvalid;
            }
            if (!MoveTo(ReadUInt32()))
            {
                return CompilationMode.NativeOrInvalid;
            }
            if (ReadUInt32() != 0x00004550)
            {
                return CompilationMode.NativeOrInvalid;
            }
            if (!Advance(20))
            {
                return CompilationMode.NativeOrInvalid;
            }

            var result = CompilationMode.NativeOrInvalid;
            switch (ReadUInt16())
            {
                case 0x10B:
                    if (Advance(206))
                    {
                        result = CompilationMode.CLRx86;
                    }

                    break;
                case 0x20B:
                    if (Advance(222))
                    {
                        result = CompilationMode.CLRx64;
                    }
                    break;
            }

            if (result == CompilationMode.NativeOrInvalid)
            {
                return result;
            }

            return ReadUInt32() != 0 ? result : CompilationMode.NativeOrInvalid;
        }

Same methods

Image::GetCompilationMode ( string file ) : CompilationMode

Usage Example

Example #1
0
        public static CompilationMode GetCompilationMode(string file)
        {
            Guard.AgainstNull(nameof(file), file);

            using (var stream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                using (var image = new Image(stream))
                {
                    return image.GetCompilationMode();
                }
            }
        }
All Usage Examples Of NServiceBus.Image::GetCompilationMode