C# (.Net) 中的浏览器检测

Browser detection in C# (.Net)

我今天在 C# 土地上。 我正在尝试编写一个接受用户代理字符串的函数和returns一个至少给我浏览器名称和版本的对象。所以我尝试了this answer,但显然我无权访问 HttpBrowserCapabilities。它告诉我找不到类型或命名空间名称(是的,即使我添加了 using System.Web,它仍然没有显示,或者当我使用 System.Web 键入时,它没有弹出起来,所以它显然不存在)。

我正在使用 .net 3.5,但 class 的文档显示它甚至在 3.5 中也存在,所以我不确定发生了什么。我可以访问 browscap 文件 - ini 或 xml。我必须从头开始写这个吗?

编辑:我已经解决了引用问题。但是 Chrome 被报告为 AppleMAC-Safari 5.0。我想知道我是否需要一种完全不同的方法。 PHP 用同一个 ini 文件搞定。

您的源文件中是否有 using System.Web; 语句?

提示:如果您正在使用 Visual Studio,并且您在项目中有对 System.Web.dll 的引用,如果您键入类型的名称并按 Ctrl-. 它将为您提供一个弹出菜单,用于将命名空间引用添加到您的源文件。

您在 ObjectBrowser 中看到它了吗(假设您使用的是 Visual Studio)?我今天早上找到了命名空间(假设我使用的是 4.5 - 但文档显示它自 3.5 及更早版本以来一直存在)

添加 using 不会 自动导入 DLL。 using 所做的只是让你不写:

System.Web.HttpClient //Or whatever

到处都是,改用HttpClient

您需要先将 reference 添加到项目 System.Web,然后您才能使用其中的任何 类。