Я создаю веб-сервис (.asmx) с ASP 2.0, и многие мои методы возвращают пользовательские объекты.Он всегда конвертировал мои объекты в XML для меня, используя свойства объектов, но я столкнулся с ситуацией, когда этого не происходит.
Мне нужно вернуть несколько объектов разных классов одновременно,и классы, к сожалению, не связаны через наследование, поэтому я возвращаю массив объектов из моего веб-метода.Вывод выглядит следующим образом:
<ArrayOfAnyType>
<anyType xsi:type="Type1"/>
<anyType xsi:type="Type2"/>
</ArrayOfAnyType>
Классы Type1 и Type2 имеют определенные свойства, но они не реализуются автоматически и доступны только для чтения.Все свойства, которые я видел автоматически преобразованные в XML, были полностью автоматически реализованы.Вот почему он не конвертируется должным образом?Я собираюсь изменить дизайн моих классов, чтобы заставить это работать, или есть атрибут, который я могу добавить где-нибудь, или интерфейс, который я могу реализовать, или что-то подобное?
Мои объявления классов выглядят так:
Public Class Type1
Dim _var1 As Decimal
Public Sub New()
Dim conn As New SqlConnection(ConfigurationManager.AppSettings("myString"))
conn.Open()
Dim command As New SqlCommand("SELECT * FROM table1", conn)
Dim reader As SqlDataReader = command.ExecuteReader()
reader.Read()
_var1 = reader("Var1")
reader.Close()
conn.Close()
End Sub
Public ReadOnly Property Var1() As Decimal
Get
Return _var1
End Get
End Property
End Class
РЕДАКТИРОВАТЬ: уточнить мой вопрос: почему процесс сериализации XML игнорирует мои свойства в этом классе?Потому что они не реализованы автоматически?Или потому что они только для чтения?Или что-то еще?