我想使用 HttpBrowserCapabilities 在里面净核心。我试了以下方法:
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 需要一个字符串作为输入参数。
Microsoft.Extensions.Primitives.StringValues
因此我必须检查一下 userAgent userAgent.Any() )并使用以下代码
userAgent
userAgent.Any()
var userBrowser = new HttpBrowserCapabilities {Capabilities = new Hashtable {{string.Empty, userAgent.First()}}};