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