在同一解决方案中的项目之间共享变量
Share variables between projects in the same solution
我有一个解决方案和两个项目。我想共享从 project1 到 project2 的变量,反之亦然。我怎样才能做到这一点?
也许使用静态 class 但我不知道如何处理它。
如果您有多个对象在寻找相同的数据,并且该数据需要限制在单个实例中,那么 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;
}
如果你想要共享常量,你可以添加一个共享项目并将共享项目引用到project1和project2中。共享项目中的代码(具有常量成员的静态 class)链接到其他项目:
public static class Constants
{
const string AppName = "AppName";
const string AppUrl = "http://localhost:1234/myurl";
const int SomethingCount = 3;
}
如果您想共享运行时变量(具有动态值),您可以添加一个 Class 库或一个 PCL 并将其引用到 project1 和 project2 中。 Class 库中的代码将编译成 DLL 并在其他项目之间共享。您可以使用静态成员创建一个 class 并通过这种方式共享您的运行时变量:
public static class RuntimeValues
{
public static string AppName { get; set; }
public static string AppUrl { get; set; }
public static int SomethingCount { get; set; }
}
在您的项目 1 和项目 2 中,您可以执行以下操作:
var appName = Constants.AppName;
或:
RuntimeValues.AppName = "AppName";
var appName = RuntimeValues.AppName;
我有一个解决方案和两个项目。我想共享从 project1 到 project2 的变量,反之亦然。我怎样才能做到这一点? 也许使用静态 class 但我不知道如何处理它。
如果您有多个对象在寻找相同的数据,并且该数据需要限制在单个实例中,那么 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;
}
如果你想要共享常量,你可以添加一个共享项目并将共享项目引用到project1和project2中。共享项目中的代码(具有常量成员的静态 class)链接到其他项目:
public static class Constants
{
const string AppName = "AppName";
const string AppUrl = "http://localhost:1234/myurl";
const int SomethingCount = 3;
}
如果您想共享运行时变量(具有动态值),您可以添加一个 Class 库或一个 PCL 并将其引用到 project1 和 project2 中。 Class 库中的代码将编译成 DLL 并在其他项目之间共享。您可以使用静态成员创建一个 class 并通过这种方式共享您的运行时变量:
public static class RuntimeValues
{
public static string AppName { get; set; }
public static string AppUrl { get; set; }
public static int SomethingCount { get; set; }
}
在您的项目 1 和项目 2 中,您可以执行以下操作:
var appName = Constants.AppName;
或:
RuntimeValues.AppName = "AppName";
var appName = RuntimeValues.AppName;