UIAutomation.HighlighterAspect.Intercept C# (CSharp) Method

Intercept() public method

public Intercept ( IInvocation invocation ) : void
invocation IInvocation
return void
        public override void Intercept(IInvocation invocation)
        {
            invocation.Proceed();
            
            // if (invocation.TargetType.IsSubclassOf(typeof(UiaCommand)) && null != (invocation.ReturnValue as IUiElement)) { // taboo
            if (invocation.TargetType.IsSubclassOf(typeof(UiaCommand))) {
                
                var cmdlet =
                    (invocation.InvocationTarget as UiaCommand).Cmdlet;
                
                // this works
//                if (null != cmdlet.MyInvocation.MyCommand.OutputType && 0 < cmdlet.MyInvocation.MyCommand.OutputType.Count) {
//                    foreach (var element in cmdlet.MyInvocation.MyCommand.OutputType) {
//                        Console.WriteLine(element.Name);
//                    }
//                }
                
                // this does not work
//                if (cmdlet.MyInvocation.MyCommand.OutputType.Contains(new PSTypeName("UIAutomation.IUiElement[]"))) {
//                
//                    Console.WriteLine("HighlighterAspect: this is the right cmdlet");
//                
//                }
            }
        }
    }
HighlighterAspect