ตัวอย่างการเรียกคอมโพเนนต์ COM ของ Asp ที่คอมไพล์โดย C#
1 สร้างไลบรารีคลาสใหม่ MyTestDLL
2 คลิกขวาที่โครงการ MyTestDLL- 》Properties- 》Generate- 》ตรวจสอบการลงทะเบียนสำหรับ COM interop
3 เปิดไฟล์ AssemblyInfo.cs และแก้ไข [assembly: ComVisible(true)]
4 เปิดเครื่องมือพรอมต์คำสั่งของ Visual Sutdio 2008 และป้อน guidgen.exe เลือก DEFINE_GUID แล้วคลิก GUID ใหม่
5 รหัส
1. ชื่อคลาสแต่ละรายการสอดคล้องกับชื่ออินเทอร์เฟซ ชื่อคลาสคือชื่อคลาสบวกด้วยตัวพิมพ์ใหญ่ I
2. วิธีการประกาศในอินเทอร์เฟซต้องใช้แอตทริบิวต์ [DispId(n)]
3. คลาสจะต้องมีตัวสร้างแบบไม่มีพารามิเตอร์
รหัส
ใช้ระบบ;
ใช้ System.Collections.Generic;
ใช้ System.Linq;
ใช้ System.Text;
โดยใช้ System.Runtime.InteropServices;
เนมสเปซ MyTestDll
-
//Guid ที่นี่ถูกสร้างขึ้นในขั้นตอนที่ 4
[ไกด์(FFA4B191-FB5B-4dd5-B7B1-B2F32BF6F1FF)]
อินเทอร์เฟซสาธารณะ IMyTestDll
-
[รหัสประจำตัว(0)]
สตริง GetAbout();
-
คลาสสาธารณะ Test1:IMyTestDll
-
สรุปสตริงส่วนตัว
สาธารณะทดสอบ1()
-
summary = นี่เป็นการทดสอบครั้งแรกของฉัน
-
สตริงสาธารณะ GetAbout()
-
สรุปการส่งคืน;
-
-
-
6 สร้างโครงการ
รหัสทดสอบ asp
-
ดิม โอ
ตั้ง o = Server.CreateObject (MyTestDll.Test1)
ตอบกลับเขียน o.GetAbout()
ตั้ง o=ไม่มีอะไร
-
เคล็ดลับ: หากคุณต้องการใช้ส่วนประกอบ COM ที่เราพัฒนาใน C# บนคอมพิวเตอร์เครื่องอื่น คุณจะต้องลงทะเบียนส่วนประกอบนั้นด้วย regasm
วิธีการคือ:
ขั้นแรกให้คัดลอกไฟล์ในไดเร็กทอรี bin/Debug ไปยังคอมพิวเตอร์เป้าหมาย จากนั้นเปิดเครื่องมือพร้อมท์คำสั่งแล้วป้อน:
regasm ไดเร็กทอรี/filename.dll ที่คุณคัดลอกไปที่ /tlb f:/dll/filename.tlb /codebase
สามารถใช้ Run บนคอมพิวเตอร์เครื่องนี้ได้