Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#将数据从一个项目传递到另一个项目_C# - Fatal编程技术网

C#将数据从一个项目传递到另一个项目

C#将数据从一个项目传递到另一个项目,c#,C#,我的解决方案有两个项目: 第一个项目是用户登录的登录系统 我有一个保存实际连接用户id的变量: public static int UserID; 当用户登录时,该变量从数据库中获取一个值: User_info.UserID = Convert.ToInt32(Table.Rows[0][0]); User_info.UserName = Table.Rows[0][1].ToString(); User_info.Pas

我的解决方案有两个项目: 第一个项目是用户登录的登录系统

我有一个保存实际连接用户id的变量:

public static int UserID;
当用户登录时,该变量从数据库中获取一个值:

            User_info.UserID = Convert.ToInt32(Table.Rows[0][0]);
            User_info.UserName = Table.Rows[0][1].ToString();
            User_info.Password = Table.Rows[0][2].ToString();
            User_info.Email = Table.Rows[0][3].ToString();
            User_info.Pack = Convert.ToInt32(Table.Rows[0][4]);
            MessageBox.Show("" + User_info.UserID);
如您所见,UserID变量从保存完整用户信息的表中获取其值。 我检查了该值是否为null或0,它始终采用该表的值

因此,在另一个项目中,我添加了第一个项目作为参考,并使用它:

using Bufferz_Server.Network___Acces;
因此,我尝试在我的另一个项目中使用UserID值:

private int UserID = User_info.UserID;
我运行第一个项目并登录以设置
UserID
值,然后在第一个项目仍在解bug时运行另一个项目。 但在第二个项目中,我总是得到值0 我不知道我是否错过了什么?

解释: 当您在“项目2”中引用“项目1”并使用Bufferz_Server.Network__访问放置
在其中,实际上您只需从“项目1”导入代码

这样做是为了重用来自其他项目(通常是.dll)的代码。
之后,您的“项目2”依赖于“项目1”

这只是为了重用代码!这些项目完全不共享内存。

因此,从“项目1”的过程中产生的变量永远不会到达“项目2”的过程,除非你具体地告诉“项目2”或进行某种内存共享

解决方案: 您可以使用某种通信,例如TCP/UDP套接字,将您的内容发送到另一个进程

您可以使用内存映射文件,这是一个指南


我建议您选择后者。

用户ID必须标记为公共。Bufferz_Server.Network____访问也必须是公共的。我还尝试直接使用
User_info.UserID
,但它给出了相同的值!这是桌面应用程序吗?@David Tansey是的,先生!它们都是用户界面项目吗?您可能只需要在同一个程序中创建两个窗口……您好!谢谢你的回答!例如,如果我想从项目1构建一个项目2并在其中插入一些内容?