diff --git a/DecompilerNuGetDemos.workbook b/DecompilerNuGetDemos.workbook deleted file mode 100644 index 24ca23077..000000000 --- a/DecompilerNuGetDemos.workbook +++ /dev/null @@ -1,79 +0,0 @@ ---- -uti: com.xamarin.workbook -id: de255e90-ba7b-4070-be45-65e544ae8219 -title: DecompilerPackageDemos -platforms: -- DotNetCore -packages: -- id: ICSharpCode.Decompiler - version: 7.0.0.6488 ---- - -Setup: load the references required to work with the decompiler - -```csharp -#r "ICSharpCode.Decompiler" -#r "System.Reflection.Metadata" - -using System.Reflection.Metadata; -using ICSharpCode.Decompiler; -using ICSharpCode.Decompiler.CSharp; -using ICSharpCode.Decompiler.Metadata; -using ICSharpCode.Decompiler.TypeSystem; - -// Version sanity check -Console.WriteLine(typeof(FullTypeName).Assembly.GetName()); -``` - -You must have compiled **frontends.sln** first (run “dotnet build” in ICSharpCode.Decompiler.PowerShell folder) - -```csharp -string workbookBasePath = System.IO.Directory.GetCurrentDirectory(); -string fileName = System.IO.Path.Combine(workbookBasePath, "ICSharpCode.Decompiler.PowerShell", "bin", "Release", "netstandard2.0", "ICSharpCode.Decompiler.dll"); -var decompiler = new CSharpDecompiler(fileName, new DecompilerSettings()); -``` - -Get the count of types in this module - -```csharp -var types = decompiler.TypeSystem.MainModule.TypeDefinitions; -Console.WriteLine(types.Count()); -``` - -Decompile a known type (as a whole) - -```csharp -// ICSharpCode.Decompiler.Util.Empty -> translates to `n, where n is the # of generic parameters -var nameOfGenericType = new FullTypeName("ICSharpCode.Decompiler.Util.Empty`1"); -Console.WriteLine(decompiler.DecompileTypeAsString(nameOfGenericType)); -``` - -If you want to decompile one single member (sample: first method) - -```csharp -var nameOfUniResolver = new FullTypeName("ICSharpCode.Decompiler.Metadata.UniversalAssemblyResolver"); -ITypeDefinition typeInfo = decompiler.TypeSystem.FindType(nameOfUniResolver).GetDefinition(); -var tokenOfFirstMethod = typeInfo.Methods.First().MetadataToken; -Console.WriteLine(decompiler.DecompileAsString(tokenOfFirstMethod)); -``` - -If you need access to low-level metadata tables - -```csharp -ITypeDefinition type = decompiler.TypeSystem.FindType(nameOfUniResolver).GetDefinition(); -var module = type.ParentModule.PEFile; -``` - -Get the child namespaces - -```csharp -var icsdns = decompiler.TypeSystem.RootNamespace; -foreach (var ns in icsdns.ChildNamespaces) Console.WriteLine(ns.FullName); -``` - -Get types in a single namespace - -```csharp -// ICSharpCode.Decompiler.TypeSystem is the first namespace -var typesInNamespace = icsdns.ChildNamespaces.First().Types; -``` \ No newline at end of file diff --git a/ILSpy/Properties/AssemblyInfo.template.cs b/ILSpy/Properties/AssemblyInfo.template.cs index 56ae3f85e..423d364a0 100644 --- a/ILSpy/Properties/AssemblyInfo.template.cs +++ b/ILSpy/Properties/AssemblyInfo.template.cs @@ -40,7 +40,7 @@ internal static class RevisionClass public const string Minor = "2"; public const string Build = "0"; public const string Revision = "$INSERTREVISION$"; - public const string VersionName = "preview2"; + public const string VersionName = "preview3"; public const string FullVersion = Major + "." + Minor + "." + Build + ".$INSERTREVISION$$INSERTBRANCHPOSTFIX$$INSERTVERSIONNAMEPOSTFIX$"; }