هل هناك أي أطر أو أدوات مساعدة (في مساحة .NET) لتوليد كائنات نقل البيانات تلقائيا من كائنات العمل

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

سؤال

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

أدرك أن هذا قد لا يكون من الممكن أو حتى من المرغوب فيه بالنسبة للعديد من الحالات التي لا تشبه dto كائنات العمل (مثل تسطيح عدد من كائنات العمل في كائن واحد لنقل البيانات).

ومع ذلك، في حالتي، تكون نسبة مئوية كبيرة من كائنات نقل البيانات الخاصة بي تشبه كائنات أعمالها (خاصة لتحديث DTO).

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

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

المحلول

من المحتمل أن تجد Automapper مفيدة للغاية: http://www.codeplex.com/automapper.

تحرير، استجابة للتعليق المرجع:

يتم تضمين قوالب T4 في Visual Studio لجيل التعليمات البرمجية. فيما يلي منشور على جيل رمز كيان إلى DTO مع T4:

http://weblogs.asp.net/cibrax/archive/2009/03/11/code-Gention-With-T4-an-entities-to-dto-example.aspx.

نصائح أخرى

حسنا إلى حد ما يمكن ل .NET Framework نفسه القيام بذلك مع فئات مجهولة.

على سبيل المثال مع LINQ إلى الكائنات (كائنات عملك على سبيل المثال) يمكنك "مشروع" مجموعات النتيجة الخاصة بك في (قوائم) فصول مجهولة.

العيوب الرئيسية لهذا الآن لن يكون محمولا للغاية، ولكن مع .NET 4.0 والفئات الديناميكية I Daresay، لن تحتاج إلى استخدام حل الطرف الثالث، وأحيي أعتقد أن لديك الأدوات مع الإطار نفسه.

أود أيضا أن أوصي T4 Templates.. وبعد يمكنك استخدام الانعكاس للتغذية في البيانات الوصفية والقلب الفعلي يشبه ترميز ASP. هذا مبني في مقابل

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