我不确定这是否可以通过观察窗口工作(但我不明白为什么它不应该,谁知道) - 但在相同类型的两个dll-s之间消除歧义的方法是使用extern alias
。
这与global::
一样 - 除了在这种情况下,您可以使用指定dll别名。
You can use it by setting/defining alias yourself on the dll reference (I think there is alias field there in the properties).
two different DLL with same namespace
我不知道这是否完全适用于你的情况,即如果你能做到这一点,但你必须要尝试一下在你自己的情况。
编辑:(基于评论)
考虑细节 - 我想在我的调试器。由于另一个是后期绑定 - 编译器不知道它(当然,因为它不会工作)。
因此,在您的源代码中(无论如何您需要做手表的.cs),请在顶部添加例如
using mysystem = global::System.Threading.Tasks.TaskScheduler;
然后在手表mysystem.Current
(我立足在我的例子)
或者......
using mytasks = global::System.Threading.Tasks;
和mytasks.TaskScheduler
- 不要紧,真的哪一个真的。
EDIT2:
由于历史原因, - 我有种证实,代码编辑是不可避免的。
1)从项目中删除mscorlib
- 项目,设置,构建,高级。
2)手动卸载和编辑项目配置 - 添加mscorlib引用(通过VS添加是不允许的)。还需要另外修复了WPF应用程序(超出范围在这里),
3)添加别名mscorlib程序 - 可以添加多个的,独立的W/,
,工作正常,
4)添加extern alias <your alias>
,
从这一点你可以在调试器中引用它 - 但是没有办法放弃手册code editing
。外部别名也是“建筑单元”,即文件,因此没有全局性。
总之,这是我们能做的最好的,恕我直言。
而且从@JaredPar这个
How can I qualify a .NET type with assembly name for Visual Studio debugger to disambiguate while using an ambiguous type?
有趣的问题确认!不应该有任何含糊之处;对类型的引用都是通过包含程序集来限定的。但我不知道是否有任何方法来限定调试器中的引用...... – shambulator 2013-04-08 16:43:06