我已经建立了这个小型的Web应用程序。它有一个activex控件通过javascript将非托管代码返回到Silverlight应用程序中。在silverlight中,我对返回的值执行封送处理操作。当我只执行GetSize()的简单操作时,会遇到一个stupefing错误。这让我想起了我的问题:如果可以的话,是否可以在silverlight中进行一次marhsalling操作?编组silverlight中的非托管代码
回答
Silverlight的安全模型和沙盒不允许“透明”(用户代码和应用程序)执行p/invokes,可信操作或任何此类。
如果您已经安装并可用于网页的ActiveX控件,则需要使用Silverlight的HTML互操作性功能来自己编组数据。有一个特定于Silverlight 2的MSDN article about the HTML bridge,但在Silverlight的新版本中也会发现它。
这假设您的ActiveX控件可以通过浏览脚本/ JavaScript访问。
尽管某些数字和其他原语的编组在平台中运行良好,但您最终可能会通过使用字符串将您的所有数据从ActiveX控件中移出,然后在Silverlight客户端上解析它。
这可能至少启用您的方案。
我想从activex通过JavaScript的字节数组,并进入silverlight。由于JavaScript只支持原生的非托管代码,我无法发送我的字节数组。因此,我想到了执行一个简单的编组操作,这也失败了......有什么办法可以绕过这个? – vondip 2009-08-05 21:32:15
您可以编码该字节数组。在JavaScript中,您是否可以遍历字节数组并将其转换为十六进制字符串?然后你可以将它传递给Silverlight。 HTML互操作性功能是完成这个任务的方式,但是你必须在中间做一些工作。 – 2009-08-05 22:39:33
哇,我有一个巨大的字节数组(我的意思是,真的很大的东西类似于编码图像)是唯一的出路吗? – vondip 2009-08-06 03:45:38
- 1. 托管代码与非托管代码
- 2. 将非托管C++代码编译为托管代码
- 3. 通多 - 从托管代码维数组非托管代码
- 4. .NET中的托管代码和非托管代码
- 5. 更改托管代码中非托管代码的内存值
- 6. 使用托管代码中的非托管代码
- 7. 在托管代码中填充非托管数组
- 8. 允许托管环境中的托管代码回拨非托管代码
- 9. 托管代码在非托管
- 10. 从托管代码调用非托管代码的性能
- 11. 非托管dll代码
- 12. 从非托管代码
- 13. MEF和非托管代码
- 14. 在非托管C++代码
- 15. 什么是托管代码和非托管代码?
- 16. 如何使用托管代码从非托管代码?
- 17. 从非托管代码获取值到托管代码
- 18. 在调试托管代码时调试非托管代码
- 19. 调试托管代码和非托管代码
- 20. C++ cli从非托管代码调用托管代码
- 21. 从托管代码调用非托管代码
- 22. C++/cli将托管代码传递给非托管代码
- 23. 从非托管代码调用托管代码
- 24. 释放C#中的非托管代码
- 25. 非托管代码中的信号量
- 26. 呼叫/编组从C#DLL字符串非托管代码
- 27. 托管代码和非托管代码之间的调用代码
- 28. 托管C#中的自由非托管C代码内存
- 29. 如何处理非托管代码中的托管异常
- 30. 从Visual C++中的非托管代码更新托管窗体
嗨,你可以考虑添加更多的信息 - stupefing错误,或更多关于你的GetSize()操作存在的信息? – 2009-08-05 17:35:27