سؤال

لقد حدث عند مناقشة موجزة مؤخرا على موقع آخر عن C# وقت تجميع مؤخرا أثناء البحث عن شيء آخر و ظننت أن الفكرة مثيرة للاهتمام.هل سبق لك أن تستخدم هذا ؟ أنا أحاول أن أعرف كيف/متى يمكن للمرء أن استخدام هذا و ما المشكلة أنه لا يحل.سأكون مهتما جدا في الاستماع إلى كيف كنت تستخدم أو في أي سياق فمن المنطقي.

شكرا كثيرا.

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

المحلول

عادة ما أرى هذا يستخدم في الحالات التي تستخدم حاليا التفكير تحتاج إلى تحسين الأداء.

على سبيل المثال, بدلا من استخدام التفكير إلى استدعاء الأسلوب X, يمكنك إنشاء طريقة ديناميكية في وقت للقيام بذلك بالنسبة لك.

نصائح أخرى

يمكنك استخدام هذا لإضافة دعم البرمجة إلى التطبيق الخاص بك.للحصول على أمثلة نظرة هنا أو هنا.

هو بسهولة جدا ممكن تنشر أجزاء من الداخلية الخاصة بك وجوه إطار برمجة جزء ، لذلك يمكن بسهولة نسبية إضافة شيء إلى التطبيق الخاص بك أن له نفس تأثير على سبيل المثال VBA المكتبية.

لقد رأيت هذا (وقت التشغيل تجميع / استخدام النظام.انعكاس.تنبعث منها فصول) في توليد ديناميكية وكلاء ( رمز المشروع عينة ) أو غيرها من وسائل تحسين التفكير المكالمات (زمن الحكيم).

على الأقل حالة واحدة كنت قد استخدامه عند إنشاء رمز الحيوي.على سبيل المثال ، في إطار استخدام هذا داخليا لتوليد XML serializers على الطاير.بعد النظر إلى الفئة في وقت التشغيل ، فإنه يمكن توليد رمز إلى تسلسل / إلغاء تسلسل فئة.ثم يجمع ذلك رمز المستخدمين حسب الحاجة.بنفس الطريقة يمكنك توليد رمز للتعامل مع التعسفي DB الجداول الخ.ومن ثم ترجمة وتحميل إنشاء الجمعية.

حسنا, كل التعليمات البرمجية C# هو وقت تشغيل جمعها, منذ انها JIT (في الوقت المناسب) المترجم.أفترض كنت تشير إلى انعكاس.تنبعث منها إنشاء فصول.... الخعلى الطاير.هنا مثال لقد رأيت في الآونة الأخيرة في Xml-Rpc.Net المكتبة.

لقد خلق C# واجهة له نفس التوقيع كما XML-RPC خدمة المكالمات الأسلوب, على سبيل المثال

IMyProxy : IXmlRpcProxy
{
    [XmlRpcMethod]
    int Add(int a, int b);
}

ثم في قانون بلدي أدعو شيء مثل

IMyProxy proxy = (IMyProxy)XmlRcpFactory.Create(typeof(IMyProxy));

هذا يستخدم وقت التشغيل رمز جيل إلى إنشاء وظيفية بالكامل الوكيل بالنسبة لي حتى أتمكن من استخدام مثل هذا:

int result = proxy.Add(1, 2);

هذا ثم يعالج XML-RPC استدعاء بالنسبة لي.بارد جدا.

اعتدت وقت مترجم من الخدمات .صافي في شهادتي الماجستير.في الأساس كان عن بصريا خلق بعض الرسومية مكون عملية التصور ، وهو إنشاء التعليمات البرمجية C#, جمعت في الجمعية ومن ثم يمكن استخدامها على النظام الهدف دون تأويل لجعلها أسرع وأكثر إحكاما.و علاوة على ذلك فإن ولدت الصور يمكن تعبئتها في نفس الجمعية من الموارد.

استخدام آخر أنه كان في جاوة.كان تطبيق هذا أن المؤامرة قد تكون مكلفة وظيفة باستخدام بعض العددية خوارزمية (في الجامعة) يمكن للمستخدم إدخال.أنا وضعت دخلت وظيفة في الدرجة ، وقد تم تجميعها وتحميلها ومن ثم كان متوفر نسبيا سريع التنفيذ.

إذا هذه هي بلدي اثنين من الخبرات حيث وقت التشغيل رمز جيل كان شيء جيد.

شيء اعتدت عليه تم السماح C# و VB كود بو تشغيلها من قبل المستخدم المخصصة.ويمكن أن اكتب في سطر من التعليمات البرمجية (أو بضعة أسطر) و سيكون تجميع محملة إلى مجال التطبيق والتنفيذ ، ومن ثم تفريغها.وهذا ربما ليس أفضل مثال على استخدامه ، ولكن مثال على ذلك لا شيء بين بين فإن أقل

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