打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C# COM组件开发之界面窗体 - 51CTO.COM
    这里我们将介绍C# COM组件开发之界面窗体,希望通过本文能让大家对C# COM组件开发有所了解。

    C# COM组件开发,我们这里将讲到的是界面窗体的开发。将从定义接口开始,再讲类的实现以及用Regasm 工具进行注册等等,希望对大家有所帮助。

    C# COM组件开发1,定义接口

    (1)在接口上方加上[Guid("1EA4DBF0-3C3B-11CF-810C-00AA00389B71")]

    (2)在每个方法上加上[DispId(i)]

            
    1. using System;  
    2. using System.Runtime.InteropServices;  
    3. namespace Leading.Mis.NewsMonitor  
    4. ......{  
    5.     /**//**//**//// <summary> 
    6.     /// 消息监控接口的定义  
    7.     /// </summary> 
    8.     [Guid("1EA4DBF0-3C3B-11CF-810C-00AA00389B71")]  
    9.     public interface INewsMonitor  
    10.     ......{  
    11.         发送文件时,记录发送者,接收者和发送的文件名发送文件时,记录发送者,接收者和发送的文件名#region 发送文件时,记录发送者,接收者和发送的文件名  
    12.         /**//**//**//// <summary> 
    13.         /// 当发送文件时,记录发送者,接收者和发送的文件名  
    14.         /// </summary> 
    15.         /// <param name="strSendID">文件发送者</param> 
    16.         /// <param name="strTargetID">文件接受者</param> 
    17.         /// <param name="strFileName">文件名</param> 
    18.      [DispId(1)]  
    19.         void SendFile(string strSendID,string strTargetID,string strFileName);  
    20.         #endregion  
    21.           
    22.         接收文件时,记录文件接收者,发送者和发送的文件名接收文件时,记录文件接收者,发送者和发送的文件名#region 接收文件时,记录文件接收者,发送者和发送的文件名  
    23.         /**//**//**//// <summary> 
    24.         /// 接受文件时,记录文件接收者,发送者和发送的文件名  
    25.         /// </summary> 
    26.         /// <param name="strReceiveID">文件接收者</param> 
    27.         /// <param name="strSendID">文件发送者</param> 
    28.         /// <param name="strFileName">文件名</param> 
    29.         [DispId(2)]  
    30.         void RecvFile(string strReceiveID,string strSendID,string strFileName);  
    31.         #endregion  
    32.           
    33.         文件发送成功后,记录发送者,接收者和发送的文件名文件发送成功后,记录发送者,接收者和发送的文件名#region 文件发送成功后,记录发送者,接收者和发送的文件名  
    34.         /**//**//**//// <summary> 
    35.         /// 文件发送成功后,记录发送者,接收者和发送的文件名  
    36.         /// </summary> 
    37.         /// <param name="strSendID">文件发送者</param> 
    38.         /// <param name="strTargetID">文件接收者</param> 
    39.         /// <param name="strFileName">文件名</param> 
    40.         [DispId(3)]  
    41.         void  FileSendOK(string strSendID,string strTargetID,string strFileName);  
    42.         #endregion  
    43.           
    44.         取消文件发送时,记录发送者,接收者和发送的文件名取消文件发送时,记录发送者,接收者和发送的文件名#region 取消文件发送时,记录发送者,接收者和发送的文件名  
    45.         /**//**//**//// <summary> 
    46.         /// 取消文件发送时,记录发送者,接收者和发送的文件名  
    47.         /// </summary> 
    48.         /// <param name="strCancelID">取消文件发送者</param> 
    49.         /// <param name="strTargetID">文件发送对方</param> 
    50.         /// <param name="strFileName">文件名</param> 
    51.         [DispId(4)]  
    52.         void FileSendCancel(string strCancelID,string strTargetID,string strFileName);  
    53.         #endregion  
    54.           
    55.     } // end interface INewsMonitor  
    56.       
    57. } //end namespace Leading.Mis.NewsMonitor 

    C# COM组件开发2,类的实现

    (1)在类的上方加上 [Guid("1EA4DBF0-3C3B-11CF-810C-00AA00389B71")]
    [ClassInterface(ClassInterfaceType.None)] 

            
    1. using System;  
    2. using System.IO;  
    3. using System.Runtime.InteropServices;  
    4.  
    5. namespace Leading.Mis.NewsMonitor  
    6. ......{  
    7.     /**//**//**//// <summary>  
    8.     /// 消息监控类的实现  
    9.     /// </summary>  
    10.     [Guid("1EA4DBF0-3C3B-11CF-810C-00AA00389B71")]  
    11.     [ClassInterface(ClassInterfaceType.None)]  
    12.     public class NewsMonitor : INewsMonitor  
    13.     ......{  
    14.         私有字段#region 私有字段  
    15.           
    16.         private string filePath = string.Empty;  
    17.         private string writeLine = string.Empty;  
    18.           
    19.         #endregion  
    20.  
    21.         私有方法#region 私有方法  
    22.           
    23.         private  void NewsMsg()  
    24.         ......{  
    25.             StreamWriter sw = null;  
    26.             if(File.Exists(filePath))  
    27.             ......{  
    28.                 sw = File.AppendText(filePath);  
    29.             }  
    30.             else 
    31.             ......{  
    32.                 FileStream fs = File.Create(filePath);  
    33.                 sw = new StreamWriter(fs);  
    34.             }  
    35.             sw.WriteLine(writeLine);  
    36.             sw.Close();  
    37.         }  
    38.           
    39.         #endregion  
    40.           
    41.         共有方法#region 共有方法  
    42.           
    43.         发送文件时,记录发送者,接收者和发送的文件名#region 发送文件时,记录发送者,接收者和发送的文件名  
    44.     /**//// <summary>  
    45.         /// 当发送文件时,记录发送者,接收者和发送的文件名  
    46.     /// </summary>  
    47.         /// <param name="strSendID">文件发送者</param>  
    48.         /// <param name="strTargetID">文件接受者</param>  
    49.         /// <param name="strFileName">文件名</param>  
    50.                public void SendFile(string strSendID,string strTargetID,string strFileName)  
    51.         ......{  
    52.             filePath = @"c:MsgMonitorSendFile.txt";  
    53.             writeLine = strSendID + " 向 " + strTargetID + " 发送 < " + strFileName + " > 文件";  
    54.             NewsMsg();  
    55.         }  
    56.         #endregion  
    57.           
    58.      接收文件时,记录文件接收者,发送者和发送的文件名#region 接收文件时,记录文件接收者,发送者和发送的文件名  
    59.     /**//// <summary>  
    60.         /// 接受文件时,记录文件接收者,发送者和发送的文件名  
    61.     /// </summary>  
    62.         /// <param name="strReceiveID">文件接收者</param>  
    63.         /// <param name="strSendID">文件发送者</param>  
    64.         /// <param name="strFileName">文件名</param>  
    65.                public void RecvFile(string strReceiveID,string strSendID,string strFileName)  
    66.         ......{  
    67.             filePath = @"c:MsgMonitorRecvFile.txt";  
    68.             writeLine = strReceiveID + " 接收到 " + strSendID + " 发送的 < " + strFileName + " > 文件";  
    69.             NewsMsg();   
    70. }  
    71.         #endregion  
    72.           
    73.         文件发送成功后,记录发送者,接收者和发送的文件名#region 文件发送成功后,记录发送者,接收者和发送的文件名  
    74.     /**//// <summary>  
    75.         /// 文件发送成功后,记录发送者,接收者和发送的文件名  
    76.     /// </summary>  
    77.         /// <param name="strSendID">文件发送者</param>  
    78.         /// <param name="strTargetID">文件接收者</param>  
    79.         /// <param name="strFileName">文件名</param>  
    80.                public void  FileSendOK(string strSendID,string strTargetID,string strFileName)  
    81.         ......{  
    82.             filePath = @"c:MsgMonitorFileSendOK.txt";  
    83.             writeLine = strSendID + " 已经成功向 " + strTargetID + " 发送 < " + strFileName + " > 文件";  
    84.             NewsMsg();  
    85.         }  
    86.         #endregion  
    87.           
    88.        取消文件发送时,记录发送者,接收者和发送的文件名#region 取消文件发送时,记录发送者,接收者和发送的文件名  
    89.     /**//// <summary>  
    90.         /// 取消文件发送时,记录发送者,接收者和发送的文件名  
    91.     /// </summary>  
    92.         /// <param name="strCancelID">取消文件发送者</param>  
    93.         /// <param name="strTargetID">文件发送对方</param>  
    94.         /// <param name="strFileName">文件名</param>  
    95.                public void FileSendCancel(string strCancelID,string strTargetID,string strFileName)  
    96.         ......{  
    97.             filePath = @"c:MsgMonitorFileSendCancel.txt";  
    98.             writeLine = strCancelID + " 取消和 " + strTargetID + " 发送 < " + strFileName + " > 文件";  
    99.             NewsMsg();  
    100.         }  
    101.         #endregion  
    102.           
    103.         #endregion   
    104.     } // end class NewsMonitor  
    105.       
    106. //end namespace Leading.Mis.NewsMonitor 

    C# COM组件开发3,用 Regasm 工具进行注册

            
    1. Regasm NewsMsg.dll / tlb: NewsMsg.tlb 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
c# asp.net 批改webconfig文件 配置
《Visual Basic 2005 程序设计》第7章 My命名空间
C#快速剔除字符串中不合法的文件名或者文件路径字符
struts2多文件动态下载及中文解决方案(此文测试过,没错)
Struts2文件下载功能开发 - Struts2讲义 - JavaEye专栏频道
C# FTP操作类(D)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服