Inheritance: IThrowingFireAndForget
        public void FireAndForget_WhenThrows_DoesntThrowExceptionToCaller()
        {
            // The default TaskScheduler doesn't guarantee execution on another thread,
            // so we might get the exception back here. We catch and log in the interceptor
            // to avoid that.

            var instance = new ThrowingFireAndForget();
            var proxy    = CommandInterceptor.CreateProxy <IThrowingFireAndForget>(instance);

            proxy.ImmediatelyThrowWithFireAndForget();

            Assert.True(true); // Expecting no exception to be thrown.
        }
        public void FireAndForget_WhenThrows_DoesntThrowExceptionToCaller()
        {
            // The default TaskScheduler doesn't guarantee execution on another thread,
            // so we might get the exception back here. We catch and log in the interceptor
            // to avoid that.

            var instance = new ThrowingFireAndForget();
            var proxy = CommandInterceptor.CreateProxy<IThrowingFireAndForget>(instance);

            proxy.ImmediatelyThrowWithFireAndForget();

            Assert.True(true); // Expecting no exception to be thrown.
        }