如何在两个解决方案之间传递价值

时间:2014-04-11 05:51:09

标签: c# .net

我有两种不同的解决方案,我需要在这两种解决方案之间传递数据。 (单程)

我的解决方案详情如下:

解决方案A

Project1- Web Project

解决方案B

 Project2- Web Project
 project3 - class library

当按钮单击解决方案A项目1时,我需要将数据发送到解决方案B。

到目前为止我做了什么。

我添加了WCF项目来传达这两个解决方案,并为解决方案A项目B添加服务引用,对于wcf服务,我添加了对解决方案B项目3的引用。

public class Service1 : IService1
{
    public string GetData(string  value)
    {
        Class2 cls = new Class2();
        cls.GetValueService(value);
        return string.Format("You entered: {0}", value);
    }      
}

解决方案B项目3我添加了静态变量来获取该值。

public class Class2
{
    public static string assign { get; set; }
    public string getColour2()
    {
        return assign;
    }

    public string GetValueService(string val)
    {
        assign = val;
        return assign;
    }
}

然后在解决方案B项目2中我试图访问这个静态变量。但它没有像我预期的那样工作。我认为问题是创建两个单独的实例。我可以解决这个问题吗?我能使用事件处理程序吗?还有其他办法吗?

2 个答案:

答案 0 :(得分:2)

每个 App Domain 存在一次静态变量。您不能简单地从其他进程访问它。

您尝试执行的操作称为进程间通信,并且有多种方法可以执行此操作。首先,请参阅Wikipedia

答案 1 :(得分:0)

我会设置一个SQL数据库,将数据存储在第一个解决方案中,然后在第二个解决方案中检索它。

好处是:

  • 简化和可读性,因为你会减少耦合。
  • 可扩展性,因为您可以从一个数据库中调用数百个解决方案。
  • 您的数据是通用的,因为您可以导出为XML。
  • 您可以实时跟踪数据更改。
  • 您可以手动编辑数据以进行测试。
  • 两种解决方案都可以读取和写入您的数据。

我不会在这里进入SQL教程,因为已经有足够的资源。 SQL Express是免费的,每个数据库的限制为2GB,因此你可以拥有一堆空间。

祝你好运。