كيفية الحصول على القلعة المونوريل هو DataBinder/SmartDispatcherController لربط ضد الأنواع التي تحتوي على الخصائص التي هي واجهات?

StackOverflow https://stackoverflow.com/questions/306103

سؤال

نحن نستخدم واجهات لتمثيل الطبقات الكيان في النطاق لدينا نموذج.لدينا تطبيقات ملموسة من هذه بحكم باستخدام LinqToSql.واضاف لدينا مصنع أسلوب كل LinqToSql الدرجة التي لدينا خدمة طبقة يستخدم لإنشاء كيان جديد (ملاحظة ؛ بدلا من وحدة تحكم DataBind السمة يفعل ذلك).

القطار الكهربائي الافتراضي DataBinder التنفيذ سيتم تجاهل الخصائص التي تعرف بأنها واجهات.

من الناحية المثالية, نحن لا نريد مثيل البيانات لدينا طبقة من الطبقات في MonoRail - نقطة كاملة من واجهات هو فصل هذه المخاوف.

أيضا, نحن حقا لا ترغب في إنشاء مجموعة أخرى من غير LinqToSql فئات محددة عملها الوحيد هو ترجمة بين الطبقات.

انها نهاية حقا يوم طويل أكثر من هنا ، يرجى شخص ما يمكن أن يكون رحمة نقطة بنا على أجزاء من IDataBinder أننا يجب أن الزائد مع تطبيقات ، أو تلميح في نهج أخرى ربما محاولة ؟ ;-)

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

المحلول

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

نصائح أخرى

كما كين إلى فكرة يمكن تنفيذها مع العرف IParameterBinder.

يكون الحل هو استخدام الأولمبية الدولية:

  • حل ملموسة مثيل شكل من واجهة
  • ثم استخدام IDataBinder لربط سبيل المثال إلى طلب params

آخر واحد سيكون باستخدام IDictionaryAdapter:

  • توليد dto الوكيل الخاص بك واجهة
  • ثم استخدام IDataBinder لربط dto الوكيل سبيل المثال إلى طلب params

ملحوظة::الخيار الثاني لن يعمل إذا واجهة:

  • ليست عامة (همهمة)
  • وقد طرق
  • أو الأحداث
  • أو الخصائص للقراءة فقط
  • أو setonly خصائص

الماضي, أنا متأكد من ما هي المشكلة تعريض الطبقة الخرسانية في وحدة تحكم توقيع.

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

  • تحكم الجانب Http رسم الخرائط المستوى الأول التحقق من صحة البيانات من النموذج/الأوامر
  • تطبيق طبقة خدمات الأعمال التحقق ومعالجة شكل/الأوامر
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top