Совместное использование переменных между разными DLL, но в одном и том же процессе /EXE

Я объявил статическую переменную в DLLA, и я хотел бы получить доступ из другой библиотеки DLLB

Как я могу разделить переменную между двумя DLL, которые работают в одном процессе?

Проблема: в следующем коде переменная localB не может быть получена. Как я могу прочитать переменную B внутри метода Main?

  • DLLA

    namespace A
    {
    public class ProgramA
    {
    
    public static string variableA = "John";
    public static void Main(string[] args)
    {
    
        b.Program.variableB = variableA;
    }
    
  • DLLB

    namespace b
     {
     public class Program
      {
        public static string variableB;
        public static void Main(string[] args)
       {
           string localB = variableB;
       }
    

2 ответа

Если DLL2 имеет ссылку на DLL1, вы просто должны пометить эту переменную (и класс, который ее содержит) как public,

Во первых DLL (First.DLL)

namespace MyGlobalVar
{
    public static class MyAppVars
    {
        public static string UserName;
    }
}

Во второй DLL (Second.DLL) ссылка First.DLL затем используется как:

using MyGlobalVar
....

MyAppVars.UserName = "John";
Другие вопросы по тегам