سؤال

لتطبيق دلالات "أسلوب مفقود" وما شابه ذلك في C# 4.0، يجب عليك تنفيذ IDynamicObject:

public interface IDynamicObject
{
  MetaObject GetMetaObject(Expression parameter);
}

بقدر ما أستطيع معرفة أن IDynamicObject هو في الواقع جزء من DLR، لذا فهو ليس جديدًا.لكني لم أتمكن من العثور على الكثير من الوثائق حول هذا الموضوع.

هناك بعض الأمثلة البسيطة جدًا للتطبيقات (f.x. هنا و هنا)، ولكن هل يمكن لأي شخص أن يوجهني إلى تطبيقات أكثر اكتمالاً أو بعض الوثائق الحقيقية؟

على وجه الخصوص، كيف بالضبط من المفترض أن تتعامل مع المعلمة "المعلمة"؟

هل كانت مفيدة؟

المحلول

والجواب القصير هو أن MetaObject هو ما مسؤولة عن توليد فعلا التعليمات البرمجية التي سوف يتم تشغيلها في الموقع المكالمة. الآلية التي يستخدم لذلك هو LINQ أشجار التعبير، والتي تعززت في DLR. وذلك بدلا من البدء مع كائن، ويبدأ مع التعبير الذي يمثل الكائن، وبالتالي فإنه سيكون في حاجة إلى أن يعود شجرة التعبير الذي يصف الإجراءات التي يتعين اتخاذها.

عند اللعب مع ذلك، يرجى تذكر أن إصدار System.Core في CTP اتخذ من لقطة في نهاية أغسطس. أنها لا تتوافق نظيفة جدا لأي بيتا معينة من و IronPython. وقد قدم عدد من التغييرات على DLR منذ ذلك الحين.

وبالإضافة إلى ذلك، من أجل التوافق مع V2 System.Core CLR، إطلاقات و IronPython بدءا إما بيتا 4 أو 5 بيتا الآن إعادة تسمية كل شيء في هذا النظام في مساحة الاسم ليكون في مساحة الاسم Microsoft بدلا من ذلك.

نصائح أخرى

إذا كنت تريد وضع حد لإنهاء عينة بما في ذلك رمز المصدر، مما أدى إلى الكائن الحيوي الذي يقوم بتخزين قيمة لخصائص التعسفية في قاموس ثم <وأ href = "http://saftsack.fs.uni-bayreuth.de/~ dun3 / المحفوظات / أول نظرة ducktyping-ج-4-0-idynamicobject-metaobject / 202.html "يختلط =" نوفولو noreferrer "عنوان =" نظرة الأولى في بطة الكتابة في C # 4.0 "> منصبي" نظرة الأولى في بطة كتابة في C # 4.0 " يمكن أن يكون لك الحق. لقد كتبت هذا المنصب لاظهار كيف الكائن ديناميكية يمكن أن يلقي إلى واجهات كتبته بشكل ثابت. أنه يحتوي على تنفيذ عمل كاملة من البط الذي هو IDynamicObject ويجوز أعمال مثل IQuack.

إذا كنت بحاجة الى مزيد من المعلومات الاتصال بي على بلدي بلوق وأنا سوف تساعدك على طول، جيدة كما أستطيع.

وأنا فقط كتبت عن كيفية القيام بذلك هنا:

http://mikehadlow.blogspot.com /2008/10/dynamic-dispatch-in-c-40.html

وهنا هو ما كنت قد حظيت بها حتى الآن:

ويتم الحفاظ على وقت تشغيل اللغة الديناميكي حاليا كجزء من المشروع و IronPython . حتى لا يكون أفضل مكان للحصول على المعلومات.

وأسهل طريقة لتنفيذ فئة دعم IDynamicObject يبدو أن لاشتقاق من <لأ href = "http://www.codeplex.com/IronPython/SourceControl/FileView.aspx؟itemId=650479&changeSetId=42603" يختلط = " نوفولو noreferrer "> Microsoft.Scripting.Actions.Dynamic وتجاوز الأساليب ذات الصلة، على سبيل المثال الدعوة-طريقة لتنفيذ دلالات استدعاء دالة. يبدو Microsoft.Scripting.Actions.Dynamic لم تدرج في CTP، ولكن واحدة من و IronPython 2.0 يبدو أنه سوف يعمل.

وأنا لا تزال غير واضحة على المعنى الدقيق لل-parameter "معلمة"، ولكن يبدو أن توفير سياق للربط بين وجوه الحيوية.

يوفر هذا العرض أيضًا الكثير من المعلومات حول المركز الألماني لشؤون الفضاء الجوي:

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top