从同一解决方案中的其他命名空间访问活动对象

问题描述:

我知道从类似问题提供的answer编译正确。但是,我无法访问想要在运行时访问的所需对象。我碰到下面的代码为“未设置为一个实例对象对象引用”:从同一解决方案中的其他命名空间访问活动对象

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); 

     } 
    } 
} 

我启动控制台应用程序MyNamespace1,认为它将实例“当前用户”,我相信它。

现在,我从MyNamespace2启动EXE文件。然而,点击它的justabutton对象后,我得到错误告诉我,我试图访问的对象没有实例化。

非常感谢您提前。对不起,如果我在这里失去了一些东西,这可能对我来说太愚蠢了。

+1

您的程序不共享相同的内存。当您并行运行程序时,它们可能会使用相同的代码,但它们不会彼此了解或能够访问以使用相同的内存。 – Romoku

+0

谢谢你,Romoku。所以,我猜他们没有办法彼此交流,或者是在那里?无论如何,谢谢你的澄清。 – morethanyell

.NET Framework Design Guidelines建议我们按照这个命名空间的约定:

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

这将管理scope帮助。

如果意图从单独的exe进行通信,还有进程间通信。