C#将数据从一个项目传递到另一个项目
我的解决方案有两个项目: 第一个项目是用户登录的登录系统 我有一个保存实际连接用户id的变量: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
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并在其中插入一些内容?