WCF - كائن من النوع المعروف -> قابل للتشغيل المتبادل؟

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

سؤال

في الواقع يجب أن تكون هناك إجابة مباشرة لهذا السؤال (تتعلق بخاصية "الكائن" أدناه):

وجود عقد البيانات التالية:

    [KnownType(typeof(bool))]
    [KnownType(typeof(int))]
    [KnownType(typeof(string))]
    [KnownType(typeof(Customer))]
    [KnownType(typeof(Client))]
    public class Transaction
    {    
        // properties
        [DataMember(Name = "UID")]
        public int UID{}

        [DataMember(Name = "Type")]
        public Enums.TransactionType Type{}

        [DataMember(Name = "Data")]
        public Object Data{}
    }

وعقد الخدمة التالي:

public interface IService
{
      [OperationContract(Name = "GetData")]
      List<Transaction> GetTransact();
}

هل سيكون هذا قابلاً للتشغيل المتبادل؟قائلا من جافا، gSoap؟إذا لم يكن الأمر كذلك، كيف يمكنني جعلها قابلة للتشغيل البيني؟

شكرًا لك.

يحرر:أريد فقط معرفة ما إذا كان WCF يعرف كيفية إجراء تسلسل/إلغاء تسلسل الكائن من/إلى الأنواع المعروفة المحددة.

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

المحلول

يجب أن يكون الأمر جيدًا طالما أن العميل يمكنه إنشاء الأنواع بشكل صحيح من WSDL.على سبيل المثال، اعتمادًا على العميل، قد يتغير لغة C# List<Transaction> الى Transaction[] أو شيء يعادل إلى حد ما.ستحتاج أيضًا إلى تحديد نوع الربط الصحيح.عادة ما يكون basicHttpBinding أفضل النتائج لقابلية التشغيل البيني.

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