هل من الممكن لإرجاع مجموعة من كائن واجهة بدلا من كائن؟
-
03-07-2019 - |
سؤال
ولدي واجهة أن يصف قائمة المتخصصة في طلبي ...
Public Interface IAlphabeticListItem
Property StartingLetter() As String
Property DetailsList() As Generic.List(Of DetailsData)
End Interface
وكائنات متعددة تنفذ هذه الواجهة، ولكن أريد أن أعود لهم في خدمة ويب وليس كما الكائن الأساسي، ولكن كما واجهة.
<WebMethod()> _
Public Function GetCategoryList(...) As Generic.List(Of IAlphabeticListItem)
...
End Function
للأسف، وهذا يسبب استثناء
لا يمكن إجراء تسلسل اجهة IAlphabeticListItem.
وتفاصيل الاستثناء: System.NotSupportedException: لا يمكن إجراء تسلسل اجهة IAlphabeticListItem
هل هناك طريقة لجعل واجهة تسلسل، أو أنا ذاهب لدينا لتحويل كل الكائنات الخاصة بي في فئة محددة تنفيذ واجهة، ومن ثم العودة تلك الفئة؟
المحلول
ونعم ولا. لا يمكنك فضح مباشرة الطبقة العامة للالتسلسل XML لأنه غير معتمد. ولكن هل يمكن أن يعرض واجهة غير العامة على نفس جمع وتسلسل ذلك. هذا بلوق يذهب الى قدر كبير من التفصيل حول كيفية جعل هذا العمل
نصائح أخرى
وليس لدي الوقت لاختبار ذلك الآن، ولكن في C # يمكنك توسيع واجهات، ولذا فإنني افترض أنك تستطيع أن تفعل ذلك في VB.NET.
وجعل مجرد IAlphabeticListItem تمديد ISerializable