Silverlight، EDM / LINQ، خدمة الويب WCF - كيفية تمرير المجموعات إلى Silverlight

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

سؤال

ما هي الطريقة الصحيحة لتمرير إجابة (مجموعة) العودة إلى Silverlight؟

على سبيل المثال، إذا كان لدي تطبيق خدمة يجلس أعلى قاعدة بيانات Northwind Sample وتلك طريقة تسمى Getemployees (). ما هو "الشيء" المناسب للمرور إلى Silverlight؟ iqueryable؟

ثم بالنظر إلى Async / نتائج صب الأشياء على جانب Silverlight ماذا ألقي ذلك أيضا؟ iqueryable؟

تحديث:
هل هو إعلان [ASPNETCOMPATIVEILERquارات (المتطلبات = ASPNETCOMPATIVEILREQUIREMESMODE.ALLowed)] التي تسمح للعميل البعيد رؤية الهياكل (الكيانات) من الخدمة؟ لم أكن أعرف أنه كان هناك شيء مثل فئة Silverlight-Friendlight-WCF، وهذا ليس ما بدأت به. بمجرد أن أضفت هذه السمة في الحل لن يسمح لي باستخدام الخدمة بعد ذلك. لذلك لم أستطع اختبار ما كنت أراه من قبل. أي أفكار حول ما AspnetCompatibilyRequirementMode.Allowed. هل تحت غطاء محرك السيارة؟

تحديث 2:
انظر التعليقات على Terry Donaghe.

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

المحلول

هل حاولت فقط تمرير صفائف أنواع الأساس حولها؟ ما لم تقم بإنشاء DataContracts، لا يعرف WCF ما هي أي من الكائنات الخاصة بك. عند محاولة تمرير قائمة WCF حقا يمرر صفيفا منذ تصميمه يحاول أن تكون بين قابلة للتشغيل.

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

أفضل استخدام WCF يدويا - أقوم بإنشاء عقدي وتنفيذ ودليل الوكيل. القيام بذلك يعطيني قدرا كبيرا من المرونة بقدر ما يخوض De-Strialization وغيرها من الأشياء الأخرى. لمزيد من ذلك، راجع هذين المراجع:

WCF الطريق اليدوي، والطريقة الصحيحة

دليل WCF اليدوي - امتداد

أيضا، يرجى الاطلاع على الفصل 3 من الكتاب المقدس WCF، "خدمات WCF البرمجة" من Jouval Lowy. انها chock الكامل من المعلومات حول datacontracts.

نصائح أخرى

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

فقط إرجاع قائمة. إذا كنت تستطيع العودة واحدة ب, ، ثم يمكنك إرجاع قائمةب>.

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