5

我想知道为什么 .NET 框架不提供任何使用 USB 驱动程序的托管方法。从我读过的所有内容来看,您仍然必须调用 Windows API 并使用编组和 PInvoke 以及我们.NET 程序员都不想做的所有废话。为什么 .NET 提供了与串行端口通信的方法,但没有提供与 USB 端口通信的方法?现在 USB 已经比串口使用得更广泛了,是不是应该将它整合到框架中?

4

3 回答 3

10

与 .Net 框架中的所有其他功能一样,它归结为成本与回报。对于 .Net 的每个版本,所有者都必须为功能做出非常痛苦的削减决定。有太多的请求/想要全部满足。被选中的产品需要以合理的成本提供明确的价值。

我的猜测是,虽然串行端口可能不如 USB 流行,但在托管代码中更容易实现。因此,即使使用率可能不高,实施它们的相对容易性也将它们放在首位。

于 2010-02-06T17:57:35.853 回答
3

USB只是一种总线。您与设备通信的方式取决于总线另一端的芯片。没有与所有设备对话的标准化方式。

如果 USB 设备提供商希望以标准方式公开设备(他们中的大多数确实符合标准以节省开发、记录和教育客户有关其 API 的成本),他们的驱动程序程序员可以编写使设备可用的驱动程序各种 Windows API(海量存储、WIA、DirectShow、虚拟串口、蓝牙、人机接口设备等)。同样,由于标准化驱动程序已经暴露给 Windows API,因此 .Net 无需直接与硬件对话。

于 2010-02-06T18:17:56.017 回答
0

如果您正在寻找与 HID 兼容的 USB 设备接口,您可以查看CC.USBHID。它又旧又讨厌,但可能会让你朝着正确的方向前进。可能有更成熟的项目可用。

于 2010-02-06T18:13:39.437 回答