从同一解决方案中的其他命名空间访问活动对象
问题描述:
我知道从类似问题提供的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对象后,我得到错误告诉我,我试图访问的对象没有实例化。
非常感谢您提前。对不起,如果我在这里失去了一些东西,这可能对我来说太愚蠢了。
答
的.NET Framework Design Guidelines建议我们按照这个命名空间的约定:
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]
这将管理scope帮助。
如果意图从单独的exe进行通信,还有进程间通信。
您的程序不共享相同的内存。当您并行运行程序时,它们可能会使用相同的代码,但它们不会彼此了解或能够访问以使用相同的内存。 – Romoku
谢谢你,Romoku。所以,我猜他们没有办法彼此交流,或者是在那里?无论如何,谢谢你的澄清。 – morethanyell