WCF - كائن من النوع المعروف -> قابل للتشغيل المتبادل؟
-
12-11-2019 - |
سؤال
في الواقع يجب أن تكون هناك إجابة مباشرة لهذا السؤال (تتعلق بخاصية "الكائن" أدناه):
وجود عقد البيانات التالية:
[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 أفضل النتائج لقابلية التشغيل البيني.
لا تنتمي إلى StackOverflow