Excel-DNA / ExcelDna

Excel-DNA - Free and easy .NET for Excel. This repository contains the core Excel-DNA library.
https://excel-dna.net
zlib License
1.26k stars 270 forks source link

suggested enhancement - flag to indicate to intellisensehelper whether the workbook provider is required #687

Open jmkinzer opened 3 months ago

jmkinzer commented 3 months ago

Hi Govert -

WorkbookIntelliSenseProvider throws an System.Runtime.InteropServices.COMException (Invalid Index) in the case we're relying on the DNA provider because the worksheet for the WB provider will not be present. This is a bit messy and trips up the debugger. Can we have a flag to indicate whether it is even required to load it, to avoid this spurious exception?   e.g.

        public IntelliSenseHelper(IsEnableWBProvider)
        {
            Logger.Initialization.Verbose("IntelliSenseHelper Constructor Begin");
            _syncContextMain = new WindowsFormsSynchronizationContext();
            _uiMonitor = new UIMonitor(_syncContextMain);
            _display = new IntelliSenseDisplay(_syncContextMain, _uiMonitor);

            _providers = new List<IIntelliSenseProvider>
            {
                new ExcelDnaIntelliSenseProvider(_syncContextMain)
            };
                //  avoid loading and throwing a spurious exception if not needed
                if (IsEnableWBProvider) _providers.Add(new WorkbookIntelliSenseProvider());

            RegisterIntellisense();
            Logger.Initialization.Verbose("IntelliSenseHelper Constructor End");
        }