2013-02-27 84 views
1

我在同一解决方案中有3个项目。其中一个项目有一个静态变量,我试图通过访问它在另外两个项目(通过添加第三个项目的dll)。我发现在其他两个项目中创建了2个不同的静态变量副本。如何跨项目使用变量(可能是静态的)?

我该如何解决这个问题并访问这个静态变量,并使它在整个2个项目中只有一个实例?我的意思是一旦它在一个项目中被修改,就应该反映在另一个项目中。

+3

什么语言? – leppie 2013-02-27 18:58:32

回答

3

当然你可以,甚至很容易。

由于你已经指定标签,假设您正在使用的Visual Studio开发是合理的。

我进一步假设你正在用c#编写,但如果你不是,那么会有类似的方法来做同样的事情。

用c#,在项目中声明的静态变量,像

namespace CrossProject { 
    public partial class PartialClass { 
     public static String StaticVariable="123"; 
    } 
} 

而且你可以通过指定

using CrossProject; 

所以,你可以使用它像

访问另外两个项目 StaticVariable
Console.Write("{0}", PartialClass.StaticVariable); 

这不一定是partial class,但请注意,变量声明必须位于类范围内。

+0

我试过这个方法没有部分类。它不起作用。为了写“使用CrossProject;”我需要将dll添加到这两个项目中。如果我将这个DLL添加到两个项目中。我似乎把变量作为不同的实例。 – AdCan 2013-02-28 14:52:33

+0

不作为DLL添加。在另外两个项目中,您将这个项目添加为***项目引用***,并且如果您需要在不同的项目中分别编写类的部分,则需要部分类。如果您只使用变量而不是以单独的方式完成类,则部分类是可选的。 – 2013-02-28 15:14:06

0

通过API函数访问变量。不要创建一个静态全局对象,但要有一个指针并在第一次调用该API函数时创建该变量。阅读关于Singleton模式。