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

时间:2017-09-13 18:20:04

标签: c# .net namespaces

我了解从类似问题提供的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,认为它将实例化“CurrentUser”,我相信它。

现在,我从MyNamespace2启动EXE文件。但是,在单击其中的justAButton对象时,我收到错误,告诉我我正在尝试访问的对象未实例化。

非常感谢您提前。对不起,如果我在这里遗漏了一些东西,这可能是我的愚蠢。

1 个答案:

答案 0 :(得分:0)

.NET Framework Design Guidelines建议我们遵循此命名空间约定:

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

这有助于管理scope

如果意图是从单独的exe进行通信,那么还存在进程间通信。