Таким образом, класс HttpRequestBase имеет Browser property, который возвращает HttpBrowserCapabilitiesBase. В настоящее время мы используем это свойство в некоторых из нашего кода инфраструктуры MVC, чтобы получить такие вещи, как имя и номер браузера (для вывода в журналы).Создание HttpBrowserCapabilitiesBase из строки UserAgent
У нас также есть api, который использует ServiceStack, и я хотел бы иметь возможность подключить его к нашей существующей инфраструктуре. Единственное, чего не хватает, - это разобрать имя и версию браузера из заголовка UserAgent (который я получил благодаря IHttpRequest.UserAgent), но вам нужен способ его разбора.
Мой вопрос: возможно ли создать HttpBrowserCapabilitiesBase с помощью только строки UserAgent? Единственным доступным подтипом, который я вижу в msdn, является HttpBrowserCapabilitiesWrapper, чей единственный ctor - это другой HttpBrowserCapabilitiesBase.
Я думал, что этот класс, вероятно, исключительно разбирает строку UserAgent, так почему же нет ctor (string)? Есть ли подтип, фабричный или статический метод, который я не вижу, что может это сделать?
Как правило, я просто делаю это для лености - я не хочу писать/находить другой парсер UserAgent, когда знаю .Net имеет такую возможность, которую они просто скрывают.
HttpBrowserCapabilitiesBase является абстрактным, так что вы не собираетесь быть в состоянии создать экземпляр вообще. – stuartd
Да, но HttpBrowserCapabilitiesWrapper является единственным наследником на msdn, чей единственный ctor принимает другой HttpBrowserCapabilitiesWrapper. – csauve
Должен быть конкретный, кроме обертки * где-то * .. – csauve