ใช้การสะท้อนกลับเพื่อเรียกวิธีการในไลบรารี .net ใด ๆ
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-07-01 15:48:58
ฟังก์ชั่นมีดังนี้ มีความคิดเห็น โปรดตรวจสอบด้วยตัวเอง :)
บันทึก:
1. ReturnMessage เป็นคลาสที่ฉันเขียนเอง โปรดตรวจสอบบทความอื่นๆ ของฉันเกี่ยวกับฟังก์ชันนี้ ฉันแนบคลาสนี้ไว้ด้านหลังด้วย
2. ด้วย NameSpaceAndClassName และ MethodName คุณสามารถค้นหาวิธีการได้อย่างแม่นยำ ตัวอย่างเช่น เมื่อเรียก namespace1.Class1.Main ใน abc.dll การเรียกคือ CallAssembly("abc.dll","namespace1.Class1","Main" ,โมฆะ )
CallAssembly ReturnMessage แบบคงที่สาธารณะ (เส้นทางสตริง, สตริง NameSpaceAndClassName, ชื่อวิธีสตริง, พารามิเตอร์วัตถุ [])
-
พยายาม
-
Assembly Ass=Assembly.LoadFrom(Path);//โหลดไฟล์ (ไม่จำกัดเพียง dll, exe ก็สามารถใช้ได้ตราบใดที่ยังเป็น .net)
พิมพ์ TP=Ass.GetType(NameSpaceAndClassName);//NameSpaceAndClassName คือ "namespace.classname" เช่น "namespace1.Class1"
MethodInfo MI=TP.GetMethod(MethodName);//MethodName คือชื่อ method ที่จะเรียก เช่น "Main"
วัตถุ MeObj = System.Activator.CreateInstance (TP);
MI.Invoke(MeObj,Parameters);//Parameters คือรายการพารามิเตอร์ที่ส่งผ่านเมื่อเรียกใช้เมธอดเป้าหมาย
ส่งคืน ReturnMessage ใหม่ (จริง "เรียกสำเร็จแล้ว", 1);
-
จับ (ยกเว้น e)
-
return new ReturnMessage(false,"เกิดข้อยกเว้น, ข้อความคือ: "+e.Message,-1,e);
-
-
สิ่งที่แนบมาด้วยReturnMessage
ReturnMessage คลาสสาธารณะ
-
ReturnMessage สาธารณะ ()
-
นี้.m_Succeed=false;
นี้.m_Message="";
นี้.m_Code=-1,000;
นี้.m_Data=null;
-
ReturnMessage สาธารณะ (บูล IsSucceed)
-
this.m_Succeed=สำเร็จ;
-
ReturnMessage สาธารณะ (บูล IsSucceed, ข้อความสตริง)
-
this.m_Succeed=สำเร็จ;
this.m_Message=ข้อความ;
-
ReturnMessage สาธารณะ (บูล IsSucceed, ข้อความสตริง, รหัส int)
-
this.m_Succeed=สำเร็จ;
this.m_Message=ข้อความ;
this.m_Code=รหัส;
-
ReturnMessage สาธารณะ (บูล IsSucceed, ข้อความสตริง, รหัส int, ข้อมูลวัตถุ)
-
this.m_Succeed=สำเร็จ;
this.m_Message=ข้อความ;
this.m_Code=รหัส;
this.m_Data=ข้อมูล;
-
ReturnMessage สาธารณะ (บูล IsSucceed, ข้อความสตริง, รหัส int, ข้อมูลอ็อบเจ็กต์, ข้อมูลอ็อบเจ็กต์ [])
-
this.m_Succeed=สำเร็จ;
this.m_Message=ข้อความ;
this.m_Code=รหัส;
this.m_Data=ข้อมูล;
this.m_Datas=ข้อมูล;
-
-
บูล m_Succeed;
สตริง m_Message;
int m_Code;
วัตถุ m_Data;
วัตถุ [] m_Datas;
ทุนสาธารณะประสบความสำเร็จ
-
รับ {กลับมา m_Succeed;}
ชุด {m_Succeed = ค่า;}
-
ข้อความสตริงสาธารณะ
-
รับ {ส่งคืน m_Message;}
ตั้งค่า {m_Message = ค่า;}
-
รหัสสาธารณะ int
-
รับ {ส่งคืน m_Code;}
ชุด {m_Code = ค่า;}
-
ข้อมูลวัตถุสาธารณะ
-
รับ {ส่งคืน m_Data;}
ตั้งค่า {m_Data = ค่า;}
-
วัตถุสาธารณะ [] ข้อมูล
-
รับ {ส่งคืน m_Datas;}
ชุด {m_Datas = ค่า;}
-
-
http://www.cnblogs.com/niit007/archive/2006/08/13/475574.html