Несоответствие между типами для добавления и извлечения значений заголовков для IHeaderDictionary в Microsoft.Owin

В приложении OWIN я делаю, я работаю с его Request.Headers свойство, которое является IHeaderDictionary (оболочка для owin.RequestHeaders и owin.ResponseHeaders, которая реализует IReadableStringCollection, Dictionary<string, string[]>, Collection<KeyValuePair<string, string[]>>, IEnumerable<KeyValuePair<string, string[]>>, IEnumerable).

Для меня наиболее разумно думать об этом как о Dictionary<string, string[]>, Когда я добавляю что-то в этот словарь, мне нужно string ключ и string[] значение, которое имеет смысл. Так что я бы сделал что-то вроде:

string key = "MyKey";
string[] value = new string[] {someString};
this.Response.Headers.Add(key, value);

Тем не менее, когда я пытаюсь получить значения из этого словаря, я обнаружил, что он возвращает string не string[], Так что если я сделаю:

string[] value = this.Response.Headers[key];

Я получу ошибку компилятора, говорящую "не могу неявно преобразовать тип" строка "в" строку [] ". Вместо этого он работает, когда я делаю:

string value = this.Response.Headers[key];

Боюсь, я упускаю что-то очень очевидное, но я все равно решил спросить.

Обновление 1

Я нашел это объявление GitHub, чтобы заменить string[] с StringValues, что кажется актуальным, но я не знаю, как именно это решает проблему.

0 ответов

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