internal static ExpressionEvaluatorDispatcher Create(Microsoft.VisualStudio.Shell.Interop.IVsDebugger vsDebugger,
                                                             IExpressionEvaluatorContainer container,
                                                             IExpressionsCache expressionCache)
        {
            ExpressionEvaluatorDispatcher result = new ExpressionEvaluatorDispatcher(container, expressionCache);
            uint debugEventsCookie = VSConstants.VSCOOKIE_NIL;

            result._debuggerEvents = new DebuggerEvents(vsDebugger);
            result._debuggerEvents.OnEnterBreakMode  += result.OnEnterBreakMode;
            result._debuggerEvents.OnEnterDesignMode += result.debuggerSink_OnEnterDesignMode;
            vsDebugger.AdviseDebuggerEvents(result._debuggerEvents, out debugEventsCookie).ThrowOnFailure();
            return(result);
        }
 private ExpressionEvaluatorDispatcher(IExpressionEvaluatorContainer expressionEvaluatorContainer, IExpressionsCache expressionCache)
 {
     _expressionEvaluatorContainer = expressionEvaluatorContainer;
     _expressionCache = expressionCache;
 }