2017-09-13 1 views
0

Je comprends que le answer fourni à partir d'une question similaire est compilé correctement. Cependant, je ne suis pas en mesure d'accéder à l'objet désiré auquel je voulais accéder au moment de l'exécution. Je reçois une « référence d'objet non définie à une instance d'objet » à partir du code ci-dessous:Accès aux objets Live à partir d'un autre espace de noms dans la même solution

namespace MyNamespace1 { 

    public static class Program { 

     public static User CurrentUser; 

     public static void Main(string[] args) { 

      CurrentUser = new User() { UserName = "someuser" }; 

      Console.WriteLine(CurrentUser.UserName); 

      Console.ReadKey(); 

     } 
    } 
} 

namespace MyNamespace2 { 

    public partial class ThisIsAForm : Form { 

     private void justAButton_Click(object s, EventArgs e) { 

      var uname = MyNamespace1.Program.CurrentUser.UserName; 

      MessageBox.Show(uname); 

     } 
    } 
} 

je lance l'application console MyNamespace1, pensant qu'il instancier « CurrentUser », que je crois qu'il fait.

Maintenant, je lance le fichier EXE à partir de MyNamespace2. Cependant, après avoir cliqué sur l'objet justAButton, j'obtiens l'erreur m'indiquant que l'objet auquel j'essaye d'accéder n'est pas instancié.

Merci beaucoup d'avance. Désolé s'il me manque quelque chose ici, qui est probablement si stupide de ma part.

+1

Vos programmes ne partagent pas la même mémoire. Lorsque vous exécutez les programmes côte à côte, ils peuvent utiliser le même code, mais ils ne se connaissent pas ou ne peuvent pas accéder à la même mémoire. – Romoku

+0

Merci, Romoku. Donc, je devine qu'il n'y a aucun moyen d'eux de se parler, ou est-ce? Quoi qu'il en soit, merci de votre précision. – morethanyell

Répondre

0

Le .NET Framework Design Guidelines recommande que nous suivons cette convention d'espace de noms:

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>] 

Cela vous aidera à gérer scope.

Il existe également une communication entre processus si l'intention est de communiquer à partir d'exe séparés.