0

我知道 MSDN建议使用WindowsFormsHost在 WPF 应用程序中托管 ActiveX 控件。但也有ActiveXHost,用作 WebBrowser 控件的基础。它被描述为一个基础设施类,但它是公共的,我可以从中派生。它似乎提供了托管自定义 ActiveX 控件所需的一切。为什么还有一层?这是个坏主意吗?

4

2 回答 2

1

您不应该使用它的最大原因是,作为基础设施类,它们无法确保 api 在不同版本之间保持稳定。他们甚至可以从根本上改变它的使用方式,即使是在对框架进行了次要更新时也是如此。现在,他们可能不会,但是由于您不能保证它会稳定,如果新版本的 .NET 破坏了 api,您的应用程序可能会突然在用户的机器上突然中断(对他们来说)。

我不相信这发生,但这就是危险。

于 2013-08-12T13:59:53.493 回答
1

If you are building a WPF application which i assume it is the case then you should use WindowsFormsHost control to host your ActiveX content. The WebBrowser inherits from ActiveXHost to allow you to host ActiveX content in XAML applications that run inside web browsers which raises certain trust and security issues.

If you look at the inheritance tree you will find that both host derive from HwndHost but the WindowsFormsHost is intended for developers to use.

Anyway and as @Abe said, nothing truly dangerous might happen but if the guys at MSFT said not to do so then don't.

于 2013-08-12T14:11:36.097 回答