سؤال

لدي بعض 'مساعد' نمط أساليب الإرشاد انا استخدم بشكل منتظم الآن (وهم في الغالب بسيطة جدا وبديهية ، والعمل من أجل الخير وليس الشر, لذا يرجى لا يكون هذا النزول إلى مناقشة حول ما إذا كان أو لا يجب استخدامها). فهي إلى حد كبير توسيع الأساسية .NET CLR الطبقات.

حاليا لدي من نسخ 'ExtensionMethods.cs' الملف الذي يحمل بلدي أساليب الإرشاد إلى كل مشروع جديد ضمن الحل أن تكون قادرة على استخدامها في مشاريع متعددة.

هل من الممكن أن تحدد امتداد للعمل على مشاريع متعددة في حل أو التفاف عليها في 'ملحقات' dll, أم أنها محصورة في نطاق المشروع ؟

تحرير في حين أن 'مشروع مخصص' الإجابات صحيحة تماما ، اخترت marxidad هو أفضل نهج هو يعطي.شكرا على كل الإجابات حتى الآن, ولقد upmodded كل منهم ، كما كانت جميع اجابات جيدة

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

المحلول

إذا كنت لا ترغب في إنشاء المشروع بأكمله لمجرد طرق الإرشاد ، يمكنك ربط نفس الملف في مشاريع منفصلة دون نسخ الملفات:

  1. في "مستكشف الحلول" ، حدد الهدف المشروع.
  2. حدد القائمة المشروع.
  3. حدد إضافة عنصر موجود.
  4. في مربع الحوار إضافة عنصر موجود ، حدد العنصر الذي تريد الارتباط.
  5. من زر فتح القائمة المنسدلة ، حدد إضافة الرابط.

نصائح أخرى

أفضل نهج هو أن يضع كل منهم في مشروع واحد و إنشاء DLL.ثم يمكنك إدراج هذا المشروع كمشروع مرجع أو تشمل DLL الثنائية المرجعية (على الأرجح أفضل خيار).

هل يمكن وضع التمديدات الخاصة بك في مشروع منفصل, و يشمل هذا المشروع كل حل جديد كنت صنع.

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

سكوت درمان هو الصحيح في منصبه جدا:إذا كنت لا تريد لهم تغيرت يمكنك تجميع لهم كما DLL المكتبة التي تدرج في المشاريع الجديدة الخاصة بك (بدلا من بما في ذلك غير المجمعة المشروع).

إنشاء المشروع الخاص بك ملحقات .صافي منصة الإشارة أن مشروع واحد في كل من التطبيق الخاص بك المشاريع.وغني عن القول:أي منصة الاشياء فقط منصة الاشياء يذهب في هذا المشروع ؛ تطبيق الاشياء يذهب في تطبيق المشاريع.

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

العديد من الإجابات تشير إلى أن شخصا ما من شأنه أن يضع وظائف الإرشاد إلى الجمعية المشتركة.التي هي الإجابة الصحيحة.ولكن هناك شيء غريب للمبتدئين:IntelliSense أستطع جيدا بما فيه الكفاية.دعونا نقول أنا مدد ObservableCollection مع ReplaceRange وظيفة / طريقة.بعد تحرك فئة من امتداد وظائف في أول المترجم يقول error CS1061: 'System.Collections.ObjectModel.ObservableCollection<WhateverDto>' does not contain a definition for 'ReplaceRange' and no extension method 'ReplaceRange' accepting a first argument of type 'System.Collections.ObjectModel.ObservableCollection<WhateverDto>' could be found (are you missing a using directive or an assembly reference?) ثم إذا كنت تحوم فوق إشكالية ReplaceRange مكالمة, أنك لن تحصل على العرض وتشمل المناسبة باستخدام بيان تلقائيا.شخص قد يفكر في هذه النقطة أنه/أنها فعلت شيئا خاطئا.لا شيء ولكن عليك أن تعرف أين هو طريقة التمديد ، و يجب أن يدويا اكتب العبارة باستخدام على مساحة من الأساليب.بعد أن حصلت على هذا الحق الخاص بك مصدر ترجمة.

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