WebService и проблема с возвратом custom объекта
От: vladt  
Дата: 20.05.04 12:30
Оценка:
Привет всем!

Кто-нибудь встречася с такой проблемой:
Метод 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 >>
Re: WebService и проблема с возвратом custom объекта
От: shapkin Великобритания  
Дата: 20.05.04 12:42
Оценка:
Здравствуйте, 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.
Re[2]: WebService и проблема с возвратом custom объекта
От: vladt  
Дата: 20.05.04 12:59
Оценка:
Здравствуйте, 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 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.