Класс С# CallContext может хранить 2 ключа?

Существующий код:

      public abstract class MyProjectDb: DB
{ 
    public static DB ActualDb
    {
        get
        {
            DB d1 = CallContext.GetData("_d1_") as DB;
            if (d1 == null)
            {
                d1 = new DB(Settings.AppServerCon1);
                CallContext.SetData("_d1_", d1);
            }
            return d1;
        }
    }
}

d1 устанавливается только один раз. Чем это получается из метода GetData.

Я создал аналогичный для второго подключения к БД. Но d2 всегда становится нулевым. Почему я не могу получить d2 из метода GetData? я имею в виду каждый раз, когда d2 заполняется методом SetData.

      public abstract class MyProjectDbSecond : DB
{
    public static DB ActualDbSecond
    {
        get
        {
            DB d2 = CallContext.GetData("_d2_") as DB;
            if (d2 == null)
            {
                d2 = new DB(Settings.AppServerCon2);
                CallContext.SetData("_d2_", d2);
            }
            return d2;
        }
    }
}

0 ответов

Другие вопросы по тегам