الربط فى وقت التشغيل في حلول Office
ينطبق على |
---|
تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع. نوع المشروع
إصدار Microsoft Office
|
بعض الأنواع في نماذج كائن تطبيقات Office توفر وظائف متاحة من خلال ميزات الربط فى وقت التشغيل. على سبيل المثال، بعض الخصائص والأساليب يمكنها إرجاع أنواع مختلفة من الكائنات معتمدة على سياق تطبيق Office، وبعض الأنواع يمكنها عرض أساليب أو خصائص مختلفة في سياقات مختلفة.
مشاريع Visual Basic حيث Option Strict تم إيقافه ومشاريع #Visual C التي تستهدف .NET Framework 4 يمكنها العمل مباشرة مع أنواع تستخدم ميزات الربط في وقت التشغيل هذه. مشاريع Visual Basic حيث Option Strict قد تم تشغيله ومشاريع #Visual C التي تستهدف 3.5 NET Framework. يجب أن تستخدم التحويل (casting) أو الانعكاس لاستخدام هذه الأنواع.
التحويل الضمنى و الصريح للقيم المرجعة الخاصة بالكائن
تقوم العديد من الأساليب والخصائص في تجميعات توافق Microsoft Office الأساسية (PIAs) بإرجاع قيم Object، لأنه يمكن لها إرجاع العديد من الأنواع المختلفة من الكائنات. على سبيل المثال، تقوم الخاصية ActiveSheet بإرجاع Object لأنه يمكن أن تكون قيمة الإرجاع الخاصة بها كائن Worksheet أو Chart اعتمادًا على ماهية الورقة النشطة.
عندما يقوم أسلوب أو خاصية بإرجاع Object، يجب بشكل صريح تحويل (في Visual Basic) أو تحويلcast (في #C) الكائن إلى النوع الصحيح في مشاريع Visual Basic حيث Option Strict قدتم تشغيله وفي مشاريع Visual Studio التي تستهدف 3.5 NET Framework. لا يلزمك بشكل صريح تحويل(cast) لقيم الإرجاع Object في مشاريع Visual Basic حيث Option Strict تم إيقافه، و في مشاريع #Visual C التي تستهدف .NET Framework 4.
في معظم الحالات، تقوم وثائق المرجع بسرد الأنواع المحتملة من القيم المرجعة لعضو يقوم بإرجاع Object. تحويل أو تحويل(cast) الكائن يمكّن IntelliSense للكائن في محرر التعليمات البرمجية.
لمزيد من المعلومات حول التحويل في Visual Basic، راجع تحويلات ضمنية و صريح ودالة CType. للمزيد من المعلومات حول التحويل(cast) في #Visual C، راجع النوع "و" نوع تحويلات (C# البرمجة الدليل) وعامل تشغيل () (C# مرجع).
أمثلة
يوضح مثال التعليمات البرمجية التالي كيفية cast كائن إلى نوع معين في مشروع Visual Basic حيث Option Strict تم تشغيله أو في مشروع #Visual C يستهدف 3.5 NET Framework. في هذه الأنواع من المشاريع، يجب بشكل صريح تحويل(cast) الخاصية Cells إلى Range. يتطلب هذا المثال مشروع Excel على مستوى المستند بفئة ورقة عمل تسمى Sheet1.
Dim castRange As Excel.Range = CType(Globals.Sheet1.Cells(1, 1), Excel.Range)
Excel.Range castRange = (Excel.Range)Globals.Sheet1.Cells[1, 1];
يوضح مثال التعليمات البرمجية التالي كيفية تحويل(cast) كائن ضمنيا إلى نوع معين في مشروع Visual Basic حيث Option Strict تم إيقافه أو في مشروع #Visual C يستهدف 3.5 NET Framework. .NET Framework 4. في أنواع المشاريع هذه، يتم تحويل(cast) الخاصية Cells ضمنيًا إلى Range. يتطلب هذا المثال مشروع Excel على مستوى المستند بفئة ورقة عمل تسمى Sheet1.
Dim dynamicRange As Excel.Range = Globals.Sheet1.Cells(1, 1)
Excel.Range dynamicRange = Globals.Sheet1.Cells[1, 1];
الاتصال بالأعضاء المتوفرة فقط عبر الربط في وقت التشغيل
بعض الأساليب والخصائص في Office PIAs متوفرة فقط خلال الربط في وقت التشغيل. في مشاريع Visual Basic حيث Option Strict موقوف أو في مشاريع #Visual C التي تستهدف .NET Framework 4، يمكنك استخدام ميزات الربط في وقت التشغيل في هذه اللغات للاتصال بأعضاء مربوطين في وقت التشغيل. في مشاريع Visual Basic حيث Option Strict يعمل أو في مشاريع #Visual C التي تستهدف 3.5 NET Framework.، يجب عليك استخدام الانعكاس للاتصال بهؤلاء الأعضاء.
أمثلة
يوضح مثال التعليمات البرمجية التالي كيفية الاتصال بأعضاء مربوطين في وقت التشغيل في مشروع Visual Basic حيث Option Strict تم إيقافه أو في مشروع #Visual C يستهدف .NET Framework 4. هذا المثال يتصل بالخاصية Name المربوطة فى وقت التشغيل من مربع الحوار فتح ملف في Word. لاستخدام هذه التعليمات البرمجية، قم بتشغيلها من الفئة ThisDocument أو ThisAddIn في مشروع Word.
Private Sub TestDynamicDialog()
Dim dialog As Word.Dialog = Application.Dialogs(Word.WdWordDialog.wdDialogFileOpen)
dialog.Name = "Testing"
dialog.Show()
MessageBox.Show(dialog.Name)
End Sub
dynamic dialog = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen];
dialog.Name = "Testing";
dialog.Show();
MessageBox.Show(dialog.Name);
يوضح مثال التعليمات البرمجية التالي كيفية استخدام الانعكاس لإنجاز نفس المهمة في مشروع Visual Basic حيث Option Strict يعمل أو في مشروع #Visual C يستهدف 3.5 NET Framework.
Dim dlg As Word.Dialog = Application.Dialogs(Word.WdWordDialog.wdDialogFileOpen)
Dim dlgType As Type = GetType(Word.Dialog)
' Set the Name property of the dialog box.
dlgType.InvokeMember("Name", _
Reflection.BindingFlags.SetProperty Or _
Reflection.BindingFlags.Public Or _
Reflection.BindingFlags.Instance, _
Nothing, dlg, New Object() {"Testing"}, _
System.Globalization.CultureInfo.InvariantCulture)
' Display the dialog box.
dlg.Show()
' Show the Name property.
MessageBox.Show(dlgType.InvokeMember("Name", _
Reflection.BindingFlags.GetProperty Or _
Reflection.BindingFlags.Public Or _
Reflection.BindingFlags.Instance, _
Nothing, dlg, Nothing, _
System.Globalization.CultureInfo.InvariantCulture))
Word.Dialog dialog = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen];
System.Type dialogType = typeof(Word.Dialog);
// Set the Name property of the dialog box.
dialogType.InvokeMember("Name",
System.Reflection.BindingFlags.SetProperty |
System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.Instance,
null, dialog, new object[] { "Testing" },
System.Globalization.CultureInfo.InvariantCulture);
// Display the dialog box.
dialog.Show(ref missing);
// Show the Name property.
MessageBox.Show(dialogType.InvokeMember("Name",
System.Reflection.BindingFlags.GetProperty |
System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.Instance,
null, dialog, null,
System.Globalization.CultureInfo.InvariantCulture).ToString());
راجع أيضًا:
المرجع
المبادئ
كتابة التعليمات البرمجية في حلول Office
المعلمات الاختيارية في حلول Office