الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سهولة التعامل مع كائنات COM (جديد دوت نت 4)

بدأه عبد العظيم بخاري في 6 نوفمبر 2010 · 0 رد · 387 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1

احدى الفوائد المهمة التي جاء بها نوع dynamic الجديد إلى الدوت نت هي امكانية التعامل بسهولة مع كائنات COM .

وحتى نفهم هذا الأمر فسننشأ صفحة اكسل في الC# ونضع قيمة للخلية A1 بالطريقة القديمة باستعمال COM IDispatch :

using Microsoft.Office.Interop.Excel;
...
public static void Main() {
Application excel = new Application();
excel.Visible = true;
excel.Workbooks.Add(Type.Missing);
((Range)excel.Cells[1, 1]).Value = "Text in cell A1"; // Put this string in cell A1
}

لاحظ أن القيمة المرجعة من خلية excel.Cells[1, 1] هي من نوع object والتي يجب عمل cast لها لنوع Range قبل استعمال الproperty التي تسمى Value .

اما الان مع ظهور نوع dynamic الجديد اصبح اي استخدام للVARIANT في ميثود COM ما تحول لdynamic في اثناء عمل الاسمبلي للCOM في وقت التشغيل (وهذا ما يسمى بالdynamification) .

لذلك تصبح خلية excel.Cells[1, 1] من نوع dynamic وبالتالي لسنا بحاجة لعمل cast إلى نوع Range قبل استعمال الproperty التي تسمى Value .

using Microsoft.Office.Interop.Excel;
...
public static void Main() {
Application excel = new Application();
excel.Visible = true;
excel.Workbooks.Add(Type.Missing);
excel.Cells[1, 1].Value = "Text in cell A1"; // Put this string in cell A1
}

باستعمال الdynamification اصبح التعامل مع كائنات COM اسهل بكثير من السابق .

لمعلومات اكثر عن هذا الأمر

http://blogs.msdn.com/b/samng/archive/2009/06/16/com-interop-in-c-4-0.aspx

عبد العظيم بخاري

http://www.el-bukhari.com/2010/11/com-4.html

مواضيع مشابهة