COM应用总结(3/3)C#中的COM组件
由于现在.net的应用比较广泛,日常的工作中会经常地遇到C#和COM的互操作问题,为了更完整,本篇把C#处理COM的情况汇总以下
C#中对COM的互操作很是方便,具体如下:
NO PIA |
C# 4.0引入的动态特性 Guid id; |
PIA |
首先IDE中Add Refernce引用组件,此时自动生成互操作的库(也可使用tlbimp.exe手动生成) ComPlugLib.MyKit kit = new ComPlugLib.MyKit(); 如果需要管理COM的生命周期[比如COM EXE进程的调用后即时结束等],可以使用 Marshal.*** 处理com对象 |
如下是对于Office操作的C#不同版本比较
由于现在.net的应用比较广泛,日常的工作中会经常地遇到C#和COM的互操作问题,为了更完整,本篇把C#处理COM的情况汇总以下
C#中对COM的互操作很是方便,具体如下:
NO PIA |
C# 4.0引入的动态特性 Guid id; |
PIA |
首先IDE中Add Refernce引用组件,此时自动生成互操作的库(也可使用tlbimp.exe手动生成) ComPlugLib.MyKit kit = new ComPlugLib.MyKit(); 如果需要管理COM的生命周期[比如COM EXE进程的调用后即时结束等],可以使用 Marshal.*** 处理com对象 |
如下是对于Office操作的C#不同版本比较
//C# 4.0
dynamic word = Activator.CreateInstance(Type.GetTypeFromProgID("Word.Application")); word.Visible = true; var WordApplication = new Microsoft.Office.Interop.Word.Application(); WordApplication.Visible = true; object missing = System.Reflection.Missing.Value; object file = @"c:\test.txt"; object visible = true; object readOnly = false;
// 需要引入 Microsoft.Office.Interop.Word.dll(VS安装)
//C# 4.0 Named and Optional Parameters
var betterWay = WordApplication.Documents.Open(file, ReadOnly: true, Visible: true);
betterWay.Activate();
betterWay.Close();
//C# 1.0~3.5(.net3.0有一个简化的操作库Office) http://www.microsoft.com/downloads/details.aspx?FamilyID=46B6BF86-E35D-4870-B214-4D7B72B02BF9&displaylang=en VSTO_PTExtLibs.exe
Document aDoc = WordApplication.Documents.Open(
ref file, ref missing, ref readOnly, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref visible,
ref missing, ref missing, ref missing, ref missing);
aDoc.Close();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南