diff --git a/ICSharpCode.Decompiler/Disassembler/DisassemblerHelpers.cs b/ICSharpCode.Decompiler/Disassembler/DisassemblerHelpers.cs
index 555eae487..3c66ef83b 100644
--- a/ICSharpCode.Decompiler/Disassembler/DisassemblerHelpers.cs
+++ b/ICSharpCode.Decompiler/Disassembler/DisassemblerHelpers.cs
@@ -110,8 +110,12 @@ namespace ICSharpCode.Decompiler.Disassembler
public static void WriteTo(this MethodReference method, ITextOutput writer)
{
- if (method.HasThis)
+ if (method.ExplicitThis) {
+ writer.Write("instance explicit ");
+ }
+ else if (method.HasThis) {
writer.Write("instance ");
+ }
method.ReturnType.WriteTo(writer, ILNameSyntax.SignatureNoNamedTypeParameters);
writer.Write(' ');
if (method.DeclaringType != null) {
diff --git a/ICSharpCode.Decompiler/Disassembler/ReflectionDisassembler.cs b/ICSharpCode.Decompiler/Disassembler/ReflectionDisassembler.cs
index f4f8dac8a..fe054847b 100644
--- a/ICSharpCode.Decompiler/Disassembler/ReflectionDisassembler.cs
+++ b/ICSharpCode.Decompiler/Disassembler/ReflectionDisassembler.cs
@@ -94,6 +94,7 @@ namespace ICSharpCode.Decompiler.Disassembler
{ MethodImplAttributes.NoOptimization, "nooptimization" },
{ MethodImplAttributes.PreserveSig, "preservesig" },
{ MethodImplAttributes.InternalCall, "internalcall" },
+ { MethodImplAttributes.ForwardRef, "forwardref" },
};
public void DisassembleMethod(MethodDefinition method)
@@ -153,9 +154,11 @@ namespace ICSharpCode.Decompiler.Disassembler
output.WriteLine();
output.Indent();
-
- if (method.HasThis)
+ if (method.ExplicitThis) {
+ output.Write("instance explicit ");
+ } else if (method.HasThis) {
output.Write("instance ");
+ }
//call convention
WriteEnum(method.CallingConvention & (MethodCallingConvention)0x1f, callingConvention);
diff --git a/ILSpy/TextView/ILAsm-Mode.xshd b/ILSpy/TextView/ILAsm-Mode.xshd
index 5f582d37c..76fbc1afa 100644
--- a/ILSpy/TextView/ILAsm-Mode.xshd
+++ b/ILSpy/TextView/ILAsm-Mode.xshd
@@ -348,6 +348,7 @@
tls
true
false
+ strict
.class