Привет всем!
Кто-нибудь встречася с такой проблемой:
Метод WebService возвращает некоторый объект ResultSet,
который представляет из себя вкратце следующее
[Serializable]
public class ResultSet
{
public System.Object ResultObject = null;
public bool Error;
...
}
в методе сервиса, в ResultObject я засовываю объект своего класса MyClass,
который помечен атрибутом Serializable.
При передаче такого объекта ResultSet,
вылетает System.Web.Services.Protocols.SoapException
о том, что
Server was unable to process request. ---> System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type Myclass was not expected
Что ему не нравится?
Спасибо.
... << RSDN@Home 1.1.3 stable >>
Здравствуйте, vladt, Вы писали:
V>Привет всем!
V>Кто-нибудь встречася с такой проблемой:
V>Метод WebService возвращает некоторый объект ResultSet,
V>который представляет из себя вкратце следующее
V>V> [Serializable]
V> public class ResultSet
V> {
V> public System.Object ResultObject = null;
V> public bool Error;
V> ...
V> }
V>
V>в методе сервиса, в ResultObject я засовываю объект своего класса MyClass,
V>который помечен атрибутом Serializable.
V>При передаче такого объекта ResultSet,
V>вылетает System.Web.Services.Protocols.SoapException
V>о том, что Server was unable to process request. ---> System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type Myclass was not expected
V>Что ему не нравится?
V>Спасибо.
Не нравится ему то, что ResultObject описан как System.Object, а реально возвращается MyClass, о котором клиент ничего не знает.
Надо добавить методу сервиса атрибут XmlIncludeAttribute для каждого класса, экземпляр которого может хранится в ResultObject.
Здравствуйте, shapkin, Вы писали:
S>Здравствуйте, vladt, Вы писали:
V>>Привет всем!
V>>Кто-нибудь встречася с такой проблемой:
V>>Метод WebService возвращает некоторый объект ResultSet,
V>>который представляет из себя вкратце следующее
V>>V>> [Serializable]
V>> public class ResultSet
V>> {
V>> public System.Object ResultObject = null;
V>> public bool Error;
V>> ...
V>> }
V>>
V>>в методе сервиса, в ResultObject я засовываю объект своего класса MyClass,
V>>который помечен атрибутом Serializable.
V>>При передаче такого объекта ResultSet,
V>>вылетает System.Web.Services.Protocols.SoapException
V>>о том, что Server was unable to process request. ---> System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type Myclass was not expected
V>>Что ему не нравится?
V>>Спасибо.
S>Не нравится ему то, что ResultObject описан как System.Object, а реально возвращается MyClass, о котором клиент ничего не знает.
S>Надо добавить методу сервиса атрибут XmlIncludeAttribute для каждого класса, экземпляр которого может хранится в ResultObject.
Этого будет достаточно? Если не ошибаюсь, то указание XmlIncludeAttribute[typeof(MyClass)] для метода работает на ура
если бы он возвращает Object в котором реально передается объект MyClass.
А здесь ситуация немного глубже возвращается ResulSet, в который объект MyClass
входит как ResultObject field.
Тут скорее всего нужно уточнять что может прийти для ResultObject field.
Но как это сделать ?
... << RSDN@Home 1.1.3 stable >>