2017-10-09 24 views
0

.net-coreにHttpBrowserCapabilitiesを使用します。私はそれを次のように試した:.Net-Coreは、httpContextから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がスローされます。どのように私はこのコードを正しい値に戻しますか?

答えて

0

ありがとうございました!

userAgentは、タイプMicrosoft.Extensions.Primitives.StringValuesです。 しかし、HttpBrowserCapabilitiesは入力パラメータとして文字列を必要とします。

そこで私はuserAgentが値(userAgent.Any())が含まれているかどうかを確認しなければならなかったし、むしろ `てToArray(より次のコード

var userBrowser = new HttpBrowserCapabilities {Capabilities = new Hashtable {{string.Empty, userAgent.First()}}}; 
+0

を使用)[0]' 'ファースト()'動作しないのでしょうか? – Lloyd

+0

ty :) ... u r right – osanger

関連する問題