.Net-Core 从 httpContext 获取 HttpBrowserCapabilities
.Net-Core get HttpBrowserCapabilities from httpContext
我想在 .net-core 中使用 HttpBrowserCapabilities
。我尝试了以下方式:
var userAgent = httpContext.Request.Headers["user-agent"];
var userBrowser = new HttpBrowserCapabilities { Capabilities = new Hashtable { { string.Empty, userAgent } } };
var factory = new BrowserCapabilitiesFactory();
factory.ConfigureBrowserCapabilities(new NameValueCollection(), userBrowser);
var mobileString = userBrowser.IsMobileDevice ? "(mobil)" : string.Empty;
var browserString = $"{userBrowser.Browser} version {userBrowser.Version} {mobileString} OS: {userBrowser.Platform}";
但是抛出了 InvalidCastException。我如何让这段代码重新调整正确的值?
知道了!
userAgent 是 Microsoft.Extensions.Primitives.StringValues
类型。
但是 HttpBrowserCapabilities
需要一个字符串作为输入参数。
因此我必须检查 userAgent
是否包含值 (userAgent.Any()
) 并使用以下代码
var userBrowser = new HttpBrowserCapabilities {Capabilities = new Hashtable {{string.Empty, userAgent.First()}}};
我想在 .net-core 中使用 HttpBrowserCapabilities
。我尝试了以下方式:
var userAgent = httpContext.Request.Headers["user-agent"];
var userBrowser = new HttpBrowserCapabilities { Capabilities = new Hashtable { { string.Empty, userAgent } } };
var factory = new BrowserCapabilitiesFactory();
factory.ConfigureBrowserCapabilities(new NameValueCollection(), userBrowser);
var mobileString = userBrowser.IsMobileDevice ? "(mobil)" : string.Empty;
var browserString = $"{userBrowser.Browser} version {userBrowser.Version} {mobileString} OS: {userBrowser.Platform}";
但是抛出了 InvalidCastException。我如何让这段代码重新调整正确的值?
知道了!
userAgent 是 Microsoft.Extensions.Primitives.StringValues
类型。
但是 HttpBrowserCapabilities
需要一个字符串作为输入参数。
因此我必须检查 userAgent
是否包含值 (userAgent.Any()
) 并使用以下代码
var userBrowser = new HttpBrowserCapabilities {Capabilities = new Hashtable {{string.Empty, userAgent.First()}}};