我在同一解决方案中有3个项目。其中一个项目有一个静态变量,我试图通过访问它在另外两个项目(通过添加第三个项目的dll)。我发现在其他两个项目中创建了2个不同的静态变量副本。如何跨项目使用变量(可能是静态的)?
我该如何解决这个问题并访问这个静态变量,并使它在整个2个项目中只有一个实例?我的意思是一旦它在一个项目中被修改,就应该反映在另一个项目中。
我在同一解决方案中有3个项目。其中一个项目有一个静态变量,我试图通过访问它在另外两个项目(通过添加第三个项目的dll)。我发现在其他两个项目中创建了2个不同的静态变量副本。如何跨项目使用变量(可能是静态的)?
我该如何解决这个问题并访问这个静态变量,并使它在整个2个项目中只有一个实例?我的意思是一旦它在一个项目中被修改,就应该反映在另一个项目中。
当然你可以,甚至很容易。
由于你已经指定标签solution,假设您正在使用的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,但请注意,变量声明必须位于类范围内。
我试过这个方法没有部分类。它不起作用。为了写“使用CrossProject;”我需要将dll添加到这两个项目中。如果我将这个DLL添加到两个项目中。我似乎把变量作为不同的实例。 – AdCan 2013-02-28 14:52:33
不作为DLL添加。在另外两个项目中,您将这个项目添加为***项目引用***,并且如果您需要在不同的项目中分别编写类的部分,则需要部分类。如果您只使用变量而不是以单独的方式完成类,则部分类是可选的。 – 2013-02-28 15:14:06
通过API函数访问变量。不要创建一个静态全局对象,但要有一个指针并在第一次调用该API函数时创建该变量。阅读关于Singleton模式。
什么语言? – leppie 2013-02-27 18:58:32