static IServiceProvider GetGlobalProvider() { var dte = Package.GetGlobalService(typeof(EnvDTE.DTE)); if (dte == null) { try { dte = ThreadHelper.Generic.Invoke(() => Package.GetGlobalService(typeof(EnvDTE.DTE))); if (dte == null) { dte = RunningObjects.GetDTE(TimeSpan.FromMilliseconds(500)); } } catch (InvalidOperationException) // Thrown if ThreadHelper.Generic can't be run { dte = RunningObjects.GetDTE(TimeSpan.FromMilliseconds(500)); } } var ole = dte as Microsoft.VisualStudio.OLE.Interop.IServiceProvider; if (ole == null) { return(new NullServiceProvider()); } return(new OleServiceProvider(ole)); }
private static IServiceProvider GetGlobalProvider() { var dte = Package.GetGlobalService(typeof(EnvDTE.DTE)); if (dte == null) { dte = ThreadHelper.Generic.Invoke(() => Package.GetGlobalService(typeof(EnvDTE.DTE))); if (dte == null) { dte = RunningObjects.GetDTE(TimeSpan.FromMilliseconds(500)); } } var ole = dte as Microsoft.VisualStudio.OLE.Interop.IServiceProvider; if (ole == null) { return(new NullServiceProvider()); } return(new Microsoft.VisualStudio.Shell.ServiceProvider(ole)); }