2013-02-27 3 views
1

У меня есть 3 проекта в том же решении. Один из проектов имеет статическую переменную, которую я пытаюсь сделать доступ к ней в двух других проектах (добавив dll 3-го проекта). Я вижу, что в двух других проектах создаются две разные копии статических переменных.Как использовать переменную (может быть статическую) для разных проектов?

Как решить эту проблему и получить доступ к этой статической переменной и сделать ее только одним экземпляром через 2 проекта? Я имею в виду, что когда он будет изменен в одном проекте, он должен быть отражен в другом проекте.

+3

Какой язык? – leppie

ответ

3

Конечно, вы можете, и даже это очень легко.

С вы уже указать тег , если вы разрабатываете с Visual Studio разумно.

Я также предполагаю, что вы пишете в C#, но если вы этого не сделаете, будет аналогичный подход, чтобы сделать то же самое.

С #, в проекте вы объявляете статическую переменную, как

namespace CrossProject { 
    public partial class PartialClass { 
     public static String StaticVariable="123"; 
    } 
} 

И вы можете получить доступ к StaticVariable в двух других проектах, указав

using CrossProject; 

Так что вы можете использовать его как

Console.Write("{0}", PartialClass.StaticVariable); 

Это не обязательно должно быть partial class, но обратите внимание, что объявление переменной должно быть в области класса.

+0

Я пробовал этот метод без частичного класса. Это не работает. Чтобы написать «using CrossProject»; Мне нужно добавить DLL для обоих проектов. Если я добавлю dll в оба проекта. Кажется, я воспринимаю переменную как другой экземпляр. – AdCan

+0

Невозможно добавить как DLL. В других двух проектах вы добавляете это как *** проектные ссылки ***, и если вам нужно писать части класса отдельно в разных проектах, тогда необходим частичный класс. Если вы используете только переменную и не выполняете ее отдельно, то неполный класс является необязательным. –

0

Доступ к переменной через функцию API. Не создавайте статический глобальный объект, а указатель и создавайте переменную при первом вызове этой функции API. Читайте о шаблоне Singleton.

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