mirror of https://github.com/icsharpcode/ILSpy.git
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							41 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							41 lines
						
					
					
						
							1.3 KiB
						
					
					
				using System; | 
						|
using System.Collections.Generic; | 
						|
using System.IO; | 
						|
using System.Linq; | 
						|
using System.Management.Automation; | 
						|
using System.Text; | 
						|
using ICSharpCode.Decompiler.CSharp; | 
						|
using ICSharpCode.Decompiler.TypeSystem; | 
						|
 | 
						|
namespace ICSharpCode.Decompiler.PowerShell | 
						|
{ | 
						|
    [Cmdlet(VerbsCommon.Get, "DecompiledTypes")] | 
						|
    [OutputType(typeof(ITypeDefinition[]))] | 
						|
    public class GetDecompiledTypesCmdlet : PSCmdlet | 
						|
    { | 
						|
        [Parameter(Position = 0, Mandatory = true)] | 
						|
        public CSharpDecompiler Decompiler { get; set; } | 
						|
 | 
						|
        [Parameter(Mandatory = true)] | 
						|
        public string[] Types { get; set; } | 
						|
 | 
						|
        protected override void ProcessRecord() | 
						|
        { | 
						|
            HashSet<TypeKind> kinds = TypesParser.ParseSelection(Types); | 
						|
 | 
						|
            try { | 
						|
                List<ITypeDefinition> output = new List<ITypeDefinition>(); | 
						|
                foreach (var type in Decompiler.TypeSystem.Compilation.MainAssembly.GetAllTypeDefinitions()) { | 
						|
                    if (!kinds.Contains(type.Kind)) | 
						|
                        continue; | 
						|
                    output.Add(type); | 
						|
                } | 
						|
 | 
						|
                WriteObject(output.ToArray()); | 
						|
            } catch (Exception e) { | 
						|
                WriteVerbose(e.ToString()); | 
						|
                WriteError(new ErrorRecord(e, ErrorIds.DecompilationFailed, ErrorCategory.OperationStopped, null)); | 
						|
            } | 
						|
        } | 
						|
    } | 
						|
}
 | 
						|
 |