如何在 C# 库项目中创建一个 activeX 控件,然后在另一个 ASP.NET 湿站点项目中引用它?
2 回答
ActiveX 是用于客户端还是服务器?
如果对于服务器,只需使用对托管程序集的直接引用(不需要 COM)。
作为客户端,坦率地说,我不确定编写 ActiveX 控件是否是个好主意——大多数浏览器不会喜欢它们。对于更复杂的事情,您最好使用 AJAX 和 DHTML,或者 Silverlight / Acrobat / 等。
[更新] 所以你想在客户端使用 ActiveX ......我的下一个想法是“Silverlight 可以访问证书存储吗?” 我什么都找不到,虽然...
分发 ActiveX 控件(对于 IE)通常是将 dll 打包到 cab 中,将其标记为安全的脚本和激活安全。然后,您将 cab 放在 web 服务器上,在 bage 上,您有一个<object...>...</object>
元素指定 cab 的源(代码库)。
我必须强调,这种方法会非常失败。它不适用于许多浏览器,并且会在某些时间在 IE 上运行(取决于用户的安全设置)。我不推荐它。
一个更实用的选择可能是编写一个独立的 .NET exe,通过 ClickOnce 打包(在 VS 中为“发布”);将 ClickOnce 部署放到网站上,然后导航到应用程序。瞧 - 客户端上的完整 .NET 代码,没有浏览器问题。
如果您使用 C#/.NET 来构建您的控件并从 ASP.NET 使用它,您将通过将其作为标准 .NET 程序集引用它来获得更好的性能(并减少您的痛苦),完全绕过 ActiveX。希望这可以帮助!
亚当