Si vous ne pouvez pas vivre avec une solution par JaredPar Vous pouvez jeter un oeil à cette question SO: How to disambiguate type in watch window when there are two types with the same name
Cette approche peut également prendre pour fenêtre immédiate avec une certaine limitation cependant. Vous dépendez de l'endroit où le débogueur est actuellement arrêté (pensez à la flèche jaune dans la marge de gauche de l'éditeur) il semble qu'il doit se trouver à un emplacement où l'alias a été utilisé et est toujours dans la portée.
Exemple:
- Créer ClassLibrary2
- Créer ClassLibrary3
Créer ConsoleApplication1
Ajouter ClassLibrary2 comme référence à ConsoleApplication1 et modifier les alias de propriété du global au myAlias2
Ajouter ClassLibrary3 comme refe Renče à ConsoleApplication1 et modifier les alias de propriété du global au myAlias3
- modifier le contenu des fichiers suivants:
Program.cs:
namespace ConsoleApplication2
{
extern alias myAlias2;
extern alias myAlias3;
using myConsole2 = myAlias2::ClassLibrary.Console;
using myConsole3 = myAlias3::ClassLibrary.Console;
class Program
{
static void Main(string[] args)
{ // from now on you can use <code>myAlias2::ClassLibrary.Console.Write("ABC")</code> in Immediate Window
myConsole2.Write("ABC");
Write3();
// from now on you can use <code>myAlias2::ClassLibrary.Console.Write("ABC")</code> in Immediate Window
}
private static void Write3()
{ // in here you can use both aliases
myConsole3.Write("ABC");
}
}
}
ClassLibrary2/Class1.cs:
namespace ClassLibrary
{
public static class Console
{
public static void Write(string text)
{ // in here You cannot use the aliases in Immediate Window
System.Console.Write("===");
System.Console.Write(text);
System.Console.Write("===");
}
}
}
ClassLibrary3/Class1.cs:
namespace ClassLibrary
{
public static class Console
{
public static void Write(string text)
{ // in here You cannot use the aliases in Immediate Window
System.Console.Write("---");
System.Console.Write(text);
System.Console.Write("---");
}
}
}
Testé dans VS2015 Community Edition
sont-ils dans le même espace de noms? Habituellement, différents assemblys utilisent des espaces de noms différents? – Bahbar
Ils sont dans le même espace de noms. C'est malheureux et je ne peux pas changer ces assemblages. De plus, le code de l'API est exactement le même, peu importe le type choisi par le débogueur - je veux juste qu'il en utilise un mais je n'arrive pas à le faire fonctionner. – bhavinb