Context for interacting with Visual Studio
Example #1
0
        private void LoadDomain()
        {
            if (scriptDomain == null)
            {
                try
                {
                    AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
                    AppDomainSetup setup = new AppDomainSetup()
                    {
                        ApplicationBase = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
                        PrivateBinPath  = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
                    };
                    scriptDomain = AppDomain.CreateDomain(DomainName, AppDomain.CurrentDomain.Evidence, setup);
                    VSContext.InitializeAppDomain(scriptDomain);
#if USE_APP_DOMAIN
                    proxy = (VSInteractiveWindowProxy)scriptDomain.CreateInstanceAndUnwrap(typeof(VSInteractiveWindowProxy).Assembly.FullName, typeof(VSInteractiveWindowProxy).FullName);
                    var control = FrameworkElementAdapters.ContractToViewAdapter(proxy.CreateControl());
#else
                    var control = new VSInteractiveWindowControl();
#endif

                    grid.Children.Clear();
                    grid.Children.Add(control);
                }
                catch (Exception ex)
                {
#if DEBUG
                    System.Windows.MessageBox.Show("Loading domain failed:\n" + ex.ToString());
#endif
                }
            }
        }
Example #2
0
        /// <summary>
        /// Evaluates the specified visualized expression using our custom evaluator.
        /// </summary>
        public void EvaluateVisualizedExpression(DkmVisualizedExpression visualizedExpression, out DkmEvaluationResult resultObject)
        {
            VSContext.InitializeInteractiveExecution();
            VSCustomVisualizerEvaluator evaluator = new VSCustomVisualizerEvaluator(visualizedExpression);

            resultObject = evaluator.EvaluationResult;
            visualizedExpression.SetDataItem(DkmDataCreationDisposition.CreateAlways, evaluator);
        }
 /// <summary>
 /// Initializes the <see cref="VSCustomVisualizerEvaluator"/> class.
 /// </summary>
 static VSCustomVisualizerEvaluator()
 {
     VSContext.InitializeIfNeeded();
 }