|
|
|
@ -9,14 +9,28 @@
@@ -9,14 +9,28 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"execution_count": null, |
|
|
|
|
"metadata": { |
|
|
|
|
"dotnet_interactive": { |
|
|
|
|
"language": "csharp" |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "Installed package ICSharpCode.Decompiler version 7.0.0.6472-rc1" |
|
|
|
|
}, |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "ICSharpCode.Decompiler, Version=7.0.0.6472, Culture=neutral, PublicKeyToken=d4bfe873e7598c49\r\n" |
|
|
|
|
}, |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
"source": [ |
|
|
|
|
"#r \"nuget: ICSharpCode.Decompiler, 7.0.0.6372-preview3\"\n", |
|
|
|
|
"#r \"nuget: ICSharpCode.Decompiler, 7.0.0.6472-rc1\"\n", |
|
|
|
|
"\n", |
|
|
|
|
"using System.Reflection.Metadata;\n", |
|
|
|
|
"using ICSharpCode.Decompiler;\n", |
|
|
|
@ -25,16 +39,6 @@
@@ -25,16 +39,6 @@
|
|
|
|
|
"using ICSharpCode.Decompiler.TypeSystem;\n", |
|
|
|
|
"\n", |
|
|
|
|
"Console.WriteLine(typeof(FullTypeName).Assembly.GetName());" |
|
|
|
|
], |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "ICSharpCode.Decompiler, Version=7.0.0.6372, Culture=neutral, PublicKeyToken=d4bfe873e7598c49\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
@ -46,19 +50,19 @@
@@ -46,19 +50,19 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"execution_count": null, |
|
|
|
|
"metadata": { |
|
|
|
|
"dotnet_interactive": { |
|
|
|
|
"language": "csharp" |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
"outputs": [], |
|
|
|
|
"source": [ |
|
|
|
|
"const string basePath = @\"D:\\GitWorkspace\\ILSpy\\\";\n", |
|
|
|
|
"string testAssemblyPath = basePath + @\"ICSharpCode.Decompiler.PowerShell\\bin\\Release\\netstandard2.0\\ICSharpCode.Decompiler.dll\";\n", |
|
|
|
|
"\n", |
|
|
|
|
"var decompiler = new CSharpDecompiler(testAssemblyPath, new DecompilerSettings());" |
|
|
|
|
], |
|
|
|
|
"outputs": [] |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "markdown", |
|
|
|
@ -69,25 +73,23 @@
@@ -69,25 +73,23 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"execution_count": null, |
|
|
|
|
"metadata": { |
|
|
|
|
"dotnet_interactive": { |
|
|
|
|
"language": "csharp" |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
"source": [ |
|
|
|
|
"var types = decompiler.TypeSystem.MainModule.TypeDefinitions;\n", |
|
|
|
|
"Console.WriteLine(types.Count());" |
|
|
|
|
], |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "1459\r\n" |
|
|
|
|
"text/plain": "1461\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
"source": [ |
|
|
|
|
"var types = decompiler.TypeSystem.MainModule.TypeDefinitions;\n", |
|
|
|
|
"Console.WriteLine(types.Count());" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
@ -99,26 +101,24 @@
@@ -99,26 +101,24 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"execution_count": null, |
|
|
|
|
"metadata": { |
|
|
|
|
"dotnet_interactive": { |
|
|
|
|
"language": "csharp" |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
"source": [ |
|
|
|
|
"// ICSharpCode.Decompiler.Util.Empty<T> -> translates to `n, where n is the # of generic parameters\n", |
|
|
|
|
"var nameOfGenericType = new FullTypeName(\"ICSharpCode.Decompiler.Util.Empty`1\");\n", |
|
|
|
|
"Console.WriteLine(decompiler.DecompileTypeAsString(nameOfGenericType));" |
|
|
|
|
], |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "using System;\r\n\r\nnamespace ICSharpCode.Decompiler.Util\r\n{\r\n\tpublic static class Empty<T>\r\n\t{\r\n\t\tpublic static readonly T[] Array = System.Array.Empty<T>();\r\n\t}\r\n}\r\n\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
"source": [ |
|
|
|
|
"// ICSharpCode.Decompiler.Util.Empty<T> -> translates to `n, where n is the # of generic parameters\n", |
|
|
|
|
"var nameOfGenericType = new FullTypeName(\"ICSharpCode.Decompiler.Util.Empty`1\");\n", |
|
|
|
|
"Console.WriteLine(decompiler.DecompileTypeAsString(nameOfGenericType));" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
@ -130,27 +130,25 @@
@@ -130,27 +130,25 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"execution_count": null, |
|
|
|
|
"metadata": { |
|
|
|
|
"dotnet_interactive": { |
|
|
|
|
"language": "csharp" |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
"source": [ |
|
|
|
|
"var nameOfUniResolver = new FullTypeName(\"ICSharpCode.Decompiler.Metadata.UniversalAssemblyResolver\");\n", |
|
|
|
|
"ITypeDefinition typeInfo = decompiler.TypeSystem.FindType(nameOfUniResolver).GetDefinition();\n", |
|
|
|
|
"var tokenOfFirstMethod = typeInfo.Methods.First().MetadataToken;\n", |
|
|
|
|
"Console.WriteLine(decompiler.DecompileAsString(tokenOfFirstMethod));" |
|
|
|
|
], |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "using System;\r\n\r\nstatic UniversalAssemblyResolver()\r\n{\r\n\tgac_paths = GetGacPaths();\r\n\tZeroVersion = new Version(0, 0, 0, 0);\r\n\tif (Type.GetType(\"Mono.Runtime\") != null)\r\n\t{\r\n\t\tdecompilerRuntime = DecompilerRuntime.Mono;\r\n\t}\r\n\telse if (typeof(object).Assembly.GetName().Name == \"System.Private.CoreLib\")\r\n\t{\r\n\t\tdecompilerRuntime = DecompilerRuntime.NETCoreApp;\r\n\t}\r\n\telse if (Environment.OSVersion.Platform == PlatformID.Unix)\r\n\t{\r\n\t\tdecompilerRuntime = DecompilerRuntime.Mono;\r\n\t}\r\n}\r\n\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
"source": [ |
|
|
|
|
"var nameOfUniResolver = new FullTypeName(\"ICSharpCode.Decompiler.Metadata.UniversalAssemblyResolver\");\n", |
|
|
|
|
"ITypeDefinition typeInfo = decompiler.TypeSystem.FindType(nameOfUniResolver).GetDefinition();\n", |
|
|
|
|
"var tokenOfFirstMethod = typeInfo.Methods.First().MetadataToken;\n", |
|
|
|
|
"Console.WriteLine(decompiler.DecompileAsString(tokenOfFirstMethod));" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
@ -162,17 +160,17 @@
@@ -162,17 +160,17 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"execution_count": null, |
|
|
|
|
"metadata": { |
|
|
|
|
"dotnet_interactive": { |
|
|
|
|
"language": "csharp" |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
"outputs": [], |
|
|
|
|
"source": [ |
|
|
|
|
"ITypeDefinition type = decompiler.TypeSystem.FindType(nameOfUniResolver).GetDefinition();\n", |
|
|
|
|
"var module = type.ParentModule.PEFile;" |
|
|
|
|
], |
|
|
|
|
"outputs": [] |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "markdown", |
|
|
|
@ -183,89 +181,71 @@
@@ -183,89 +181,71 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"execution_count": null, |
|
|
|
|
"metadata": { |
|
|
|
|
"dotnet_interactive": { |
|
|
|
|
"language": "csharp" |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
"source": [ |
|
|
|
|
"var icsdns = decompiler.TypeSystem.RootNamespace;\n", |
|
|
|
|
"foreach (var cn in icsdns.ChildNamespaces) Console.WriteLine(cn.FullName);" |
|
|
|
|
], |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "Microsoft\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "System\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "LightJson\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "Humanizer\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "ICSharpCode\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "FxResources\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "Internal\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "Windows\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "MS\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
"source": [ |
|
|
|
|
"var icsdns = decompiler.TypeSystem.RootNamespace;\n", |
|
|
|
|
"foreach (var cn in icsdns.ChildNamespaces) Console.WriteLine(cn.FullName);" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
@ -277,39 +257,35 @@
@@ -277,39 +257,35 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"execution_count": null, |
|
|
|
|
"metadata": { |
|
|
|
|
"dotnet_interactive": { |
|
|
|
|
"language": "csharp" |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
"source": [ |
|
|
|
|
"var typesInNamespace = icsdns.ChildNamespaces.First(cn => cn.FullName == \"LightJson\").Types;\n", |
|
|
|
|
"Console.WriteLine(typesInNamespace.First().FullTypeName);" |
|
|
|
|
], |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
|
"output_type": "execute_result", |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": "LightJson.JsonArray\r\n" |
|
|
|
|
}, |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"metadata": {} |
|
|
|
|
"output_type": "unknown" |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
"source": [ |
|
|
|
|
"var typesInNamespace = icsdns.ChildNamespaces.First(cn => cn.FullName == \"LightJson\").Types;\n", |
|
|
|
|
"Console.WriteLine(typesInNamespace.First().FullTypeName);" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 1, |
|
|
|
|
"execution_count": null, |
|
|
|
|
"metadata": { |
|
|
|
|
"dotnet_interactive": { |
|
|
|
|
"language": "csharp" |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
"source": [ |
|
|
|
|
"" |
|
|
|
|
], |
|
|
|
|
"outputs": [] |
|
|
|
|
"outputs": [], |
|
|
|
|
"source": [] |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
"metadata": { |
|
|
|
@ -321,7 +297,7 @@
@@ -321,7 +297,7 @@
|
|
|
|
|
"language_info": { |
|
|
|
|
"file_extension": ".cs", |
|
|
|
|
"mimetype": "text/x-csharp", |
|
|
|
|
"name": "C#", |
|
|
|
|
"name": "csharp", |
|
|
|
|
"pygments_lexer": "csharp", |
|
|
|
|
"version": "8.0" |
|
|
|
|
} |
|
|
|
|