问题标签 [objectbrowser]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
217 浏览

vba - ComboBox Enter 事件从对象浏览器中消失

我有一个类模块,我在我的 Excel VBA 项目中扩展 MSForms ComboBox 的功能。我将组合框引用添加到我的班级:

我为这个组合框添加了一堆事件处理程序,包括 Enter 事件:

这工作正常,突然间我的 Enter 事件停止触发。所以我开始调查,发现它不再被列为“cBox”事件列表中的事件之一。事实上,其他事件也丢失了。发生这种情况时,我没有对 References 进行任何更改。在此之前我所做的最后一个更改是注释掉一些我没有用来完成我的功能的事件。评论它们并恢复它们并没有带回事件。现在,所有缺少的事件处理程序都列为类本身下的函数(例如 cBox_Enter)

当前列表有:

但是,用户窗体上的相同 ComboBox 控件仍然列出了所有缺少的事件:

类中缺少带有 (*) 的事件,但存在于 UserForm 列表中。我还去了对象浏览器并查看了组合框对象,在类浏览器中这些事件也丢失了。

有没有人见过这个并且知道如何在类模块中恢复这些事件?

注意:我使用的是 Excel 2003

0 投票
1 回答
1103 浏览

visual-studio - 如何清除 Visual Studio 的对象浏览器缓存?

我们有一个正在开发的库项目,在另一个项目中,我将功能分支安装为 Nuget 包。正在对分支进行更改,但没有更新版本号,因此 Nuget 包正在更新,但它具有相同的名称。

我已经从我的包文件夹中删除了 Nuget 包,所以我知道我正在下载最新的包,如果我手动浏览(在对象浏览器中)到我下载到我的包文件夹的 dll,对象浏览器数据看起来是正确的.

我已经在我的项目中卸载并重新安装了 Nuget 包,我已经关闭了 Visual Studio 2017 的所有实例,但我通过 Nuget 安装的 dll 的对象浏览器中仍然存在旧项目。我预计会出现构建失败,因为我正在引用旧项目,但是一切都成功构建,但是当我运行应用程序时,我遇到运行时错误,因为我在代码中引用的旧项目不再存在于 dll 中目前已下载。

如果我们不必为每个构建增加版本就好了,尽管我们可以将 TeamCity 设置为自动执行此操作,但是在我们的提要中维护所有额外的 Nuget 包会变得很困难。

那么,除了在开发 Nuget 包上增加版本号之外,有没有办法清除 Visual Studio 2017 中的缓存,以便对象浏览器更新以反映包文件夹中实际存在的 dll?

0 投票
3 回答
217 浏览

c# - 调试/代码跟踪时是否使用 C# 在 Visual Studio 中浏览对象/类?

所以我的想法是我想在调试/跟踪时查看对象的成员或属性会返回/更改什么。有对象浏览器,但它只是显示对象的树列表。

例如,假设

但是我想在调试时更改.CacheDir.ExternalCacheDir查看将返回给变量的值。

否则,我必须在编辑模式下更改它并重新启动整个调试过程。我认为我们可以在浏览器开发者控制台或类似 CLI 环境的 Jupyter notebook 中做这样的事情。

0 投票
1 回答
184 浏览

c# - Visual Studio SDK 获取类型修饰符信息 - 类型是抽象的还是内部的?

我使用该IVsObjectList2.GetCategoryField2方法来检索一种类型的不同信息。

现在我想知道如何检索 C# 特定信息,如类型abstractinternal修饰符?对象浏览器可以显示这些信息。

在此处输入图像描述

更新1:

我再次尝试获取此信息。通过DynamicTypeServiceIVsHierarchy(项目的)我可以得到TypeResolutionService. 然后这可以返回Type我正在寻找的类型,并形成我得到信息(内部、抽象等)的类型

不幸的是,这只适用于 .NET Framework 项目。.NET Core 项目不起作用。假设是 .NET 核心项目在解决时会导致问题,因为 VS 插件(或 Visual Studio SDK)在 .NET Framework 下运行。

更多信息:Visual Studio Extension 获取所有类和接口元数据

我仍在寻找解决方案。有人有其他想法吗?

0 投票
1 回答
465 浏览

excel - Excel 中 Application.ActiveSheet 的所有属性 - 对象浏览器未列出成员的属性

Microsoft Docs 没有列出 Object 的所有属性Application.ActiveSheethttps ://docs.microsoft.com/en-us/office/vba/api/excel.application.activesheet

它仅包含一些属性,例如:ActiveSheet.Name. 但是从我在互联网上找到的 VBA 脚本中,我知道还有更多的属性,例如:ActiveSheet.Type

所以我想也许我可以用这个 VBA 代码列出它们:来自:VBA 集合:键列表

但它不起作用,Microsoft Docs 建议使用对象浏览器。但是对象浏览器没有列出 Application.ActiveSheet 的属性:

ActiveSheet 对象浏览器

我没主意了!我只想要一个所有 ActiveSheet 属性的列表。因为我只需要知道活动工作表的文本方向,就好像它是从左到右或从右到左一样。

0 投票
1 回答
71 浏览

c# - 使用后卸载程序集或 AppDomain(如在对象浏览器中)

我正在尝试加载 externalAssembly以列出所有TypesMethods并且Properties在运行时,就像Object Browserin一样Visual Studio。我的要求是,我想将Assembly其加载到外部列表Memberstreeview并在使用后卸载Assembly或卸载AppDomain。稍后在同一个项目中,我使用它assembly来修改和添加更多代码。由于我已经打开了程序集,CompileAssemblyFromFile因此不允许我编译和生成输出。我该如何处理这种情况?如何Object BrowserVisual Studio不创建实例的情况下工作,Assembly或者如果创建了实例,使用后如何卸载它?

附言

我已经尝试使用另一个AppDomain来加载程序集但没有成功。由于treeview是在主 appdomain 中创建的,因此我无法在自定义 appdomain 中访问它来添加节点。