Вопрос по c#, asp.net – Искусственное заполнение объекта HttpContext в консольном приложении.

1

Я пишу библиотеку оболочки для log4net. Эта библиотека должна быть в состоянии захватить информацию контекста, такую как строка запроса, cookie, поля формы и т. Д. И т. Д.

Я вызываю этот класс-оболочку из консольного приложения, в отличие от класса TDD.

Есть ли способ заполнить объект HttpContext внутри консольного приложения следующим образом?

HttpContext c = new HttpContext(null);
c.Request.QueryString.Keys[1] = "city";
c.Request.QueryString[1] = "Los Angeles";
c.Request.QueryString.Keys[2] = "state";
c.Request.QueryString[2] = "CA";

А потом восстановить это следующим образом?

Console.WriteLine(context.Request.QueryString.Keys[1]);

Я получаю следующее исключение при попытке использовать приведенный выше код.

Property or indexer 'System.Collections.Specialized.NameObjectCollectionBase.KeysCollection.this[int]' cannot be assigned to -- it is read only 
с какой стати вы зависите от httpcontext в консольном приложении? что вы пытаетесь достичь здесь? AndreasKnudsen
Adreas, только что отредактировал мой вопрос, чтобы решить вашу проблему. dotnet-practitioner

Ваш Ответ

2   ответа
1

Typemock Изолятор настроить контекст, но это не бесплатно. Другим (лучшим) подходом было бы абстрагирование HttpContext и реализация вашего консольного (тестового?) Клиента против ложной реализации абстракции.

Похожие вопросы