【发布时间】:2009-04-15 17:21:58
【问题描述】:
我遇到了一个问题,即在服务的线程上运行时无法正确访问对象集合。我可以在 VS2008 中很好地运行我的单元测试,但是当我将调试器附加到服务时,我可以清楚地看到它不是从基于 1 的索引开始,而是从基于 0 的索引开始。我已经尝试了所有我能想到的来隔离它,唯一的区别是它在服务中,而不是作为命令行应用程序运行。
当我调试该函数时,我还会收到一条“属性评估失败”消息,而在我的单元测试中运行它时却没有。
请指教。
[编辑]
我知道数组通常从 0 开始。我一直假设这一点,但今天我发现了这个错误并确定即使我认为它从 0 开始,调试器显示它从 1 开始。当我迭代通过集合,它在 VS 中获得正确的值,但在服务中却没有。
[编辑]
我正在使用 Microsoft.VisualBasic.Collection,因为我可以对它设置密钥。字典对象也可以被使用,但它现在是这样设置的,这就是我的 BLL 基类和其他众多函数读取它的方式,因此最好不要更改它。
[解决方案]
我使用字典和 Generic.KeyValuePair(Of String, Object) 重构了我的代码,这样我就不必重写访问键的代码。现在应该可以正常工作了,因为它不像 collecitons 对象那样处理集合。
【问题讨论】:
-
您使用的是什么类型的集合?
-
Microsoft.VisualBasic.Collection
标签: .net visual-studio-2008 multithreading debugging service