2015-12-16 6 views
0

У меня есть решение и два проекта. Я хочу поделиться переменными с project1 на project2 и наоборот. Как я могу это сделать? Может быть, со статическим классом, но я не знаю, как его можно обработать.Доля переменных между проектами в одном решении

+0

определяют «переменные» - вы имеете в виду константы? –

ответ

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; 
} 
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 и проекта2, вы можете сделать что-то вроде:

var appName = Constants.AppName; 

Или:

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

, но, например, если project1 во время выполнения выполняет 'RuntimeValues.AppName =" MyApp ";' after inside project2, каково значение RuntimeValues.AppName? –

Смежные вопросы