在同一解决方案中共享项目之间的变量

时间:2015-12-16 23:15:24

标签: c# visual-studio-2015 uwp windows-10-mobile

我有一个解决方案和两个项目。我想分享从project1到project2的变量,反之亦然。我怎样才能做到这一点? 也许有一个静态类,但我不知道如何处理它。

2 个答案:

答案 0 :(得分:2)

如果需要共享常量,可以添加共享项目并将共享项目引用到project1和project2中。共享项目中的代码(具有常量成员的静态类)链接到其他项目中:

public static class Constants
{
    const string AppName = "AppName";
    const string AppUrl = "http://localhost:1234/myurl";
    const int SomethingCount = 3;
}

如果需要共享运行时变量(带动态值),可以添加类库或PCL并将其引用到project1和project2中。类库中的代码将在DLL中编译,并在其他项目之间共享。您可以使用静态成员创建一个类,并通过以下方式共享您的运行时变量:

public static class RuntimeValues
{
    public static string AppName { get; set; }
    public static string AppUrl { get; set; }
    public static int SomethingCount { get; set; }
}

在project1和project2中,您可以执行以下操作:

var appName = Constants.AppName;

或者:

RuntimeValues.AppName = "AppName";
var appName = RuntimeValues.AppName;

答案 1 :(得分:0)

如果您有多个对象正在查找相同的数据,并且该数据需要限制为单个实例,则Singleton适合您。

public class AppSingleton
{
// Private static reference to the long instance of this
// Singleton.  
private static readonly AppSingleton _instance = new AppSingleton();

// Current state of the application.
private State _state = State.Start;

public State State => _state;

// Private constructor ensures that only the Singleton
// can create new instances.
private AppSingleton() { }

public AppSingleton Instance => _instance;
}