Silverlight使用自定义的COM组件

Silverlight使用自定义的COM组件

本文转自:http://www.cnblogs.com/otomii/archive/2012/06/08/2541466.html

Hi,

code first:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices; namespace ClassLibraryForPrint { [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] public interface IComEvents { void OnPrintBegin(object sender, EventArgs e); } public delegate void ComDelegate(object sender, EventArgs e); [ComVisible(true)] [ComSourceInterfaces(typeof(IComEvents))] [ProgId("ClassLibraryForPrint.PrintDemos")] public class PrintDemos { public string Print() { if (OnPrintBegin != null) OnPrintBegin(this, new EventArgs()); return "Printing"; } public event ComDelegate OnPrintBegin; } }

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.Runtime.InteropServices.Automation; namespace SilverlightApplication171 { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); using (dynamic PrintDemos = AutomationFactory.CreateObject("ClassLibraryForPrint.PrintDemos")) { AutomationEvent automationEvent = AutomationFactory.GetEvent(PrintDemos, "OnPrintBegin"); dynamic printStr = PrintDemos.Print(); label1.Content = printStr; } } } }

Hope helpful

 

Something need to do:

1.set the ComVisible(true) in the file AssemblyInfo in properites folder in windows Class Lib.

2.check the register for com interop in the property of the project.

3.use the RegAsm.exe to register the dll.

4.check the appcation is running in oob and in the out-of-browser setting ,be sure that require elevated trust is checked.

转载于:https://www.cnblogs.com/itzhanghb/articles/5162367.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值