silverlight如何实现调用com组件的事件?

silverlight怎么实现调用com组件的事件??
本帖最后由 hanxiao1224 于 2014-04-30 10:04:01 编辑
我用c#编写了一个com组件,代码如下
namespace MyClient
{
    [ComVisible(true)]
    [Guid("C7A44B0B-7028-4173-96B8-885CD4594C97")]
    public interface IRXCOM
    {
         void Send(byte[] array, int offset, int count);
        string ceshi();
         void Dispose();
    }

    [ComVisible(true)]
    [Guid("47F8B5F9-9220-473E-B133-467327877443")]
    [ProgId("MyClient.MyClientHelp")]
    public class MyClientHelp : IDisposable, IRXCOM
    {
        public delegate void ReturnHandler(byte[] array, int offset, int count);

        public event ReturnHandler Receive;

       public string ceshi()
      {
               return "成功了";
       }
        public void Send(byte[] array, int offset, int count) 
        {
             Receive(array,offset,count);
        }
   }




在silverlight 端用

dynamic SensorManager = AutomationFactory.CreateObject("MyClient.MyClientHelp");
SensorManager .ceshi();
能够返回“成功了”;也就是说方法能实现调用;
但是SensorManager.Receive+=Receive;
这样去注册事件报错, silverlight要怎么去注册com组件里的事件,还有com里用不用定义事件的接口,该怎么写。
网上查了些例子,看的不死很明白,求大神们指点下,不胜感激。

还有我看网上说用tlbimp.exe 可以把组件编译成可引用的dll。这个tlbimp.exe到底怎么用啊,我用的是vs2012,里面没找到tlbimp这个应用程序,在c盘搜出几个,把dll也放到盘符下了,tlbimp.exe 打开就关闭了,不让输入命令。有没有知道怎么用的啊
------解决方案--------------------
sl的安全设置非常苛刻 你想*调用你的组件 应该无解
------解决方案--------------------
楼主看看这里有没有帮助:http://www.redmountainsw.com/wordpress/2011/06/08/silverlight-4-com-interop-raising-events-on-the-correct-thread/