Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Распределённые приложения и сеть > web service и serialization


Автор: Artemon 10.1.2007, 13:18
Хочу от веб службы вернуть массив элементов типа GPoint, в результате вылетает Exception с огромным количеством предупреждений и ошибок.

Код

public class GPoint
    {
        // Longitude and latitude, in degrees.
        private float Fx = 0,
                       Fy = 0
                       ;

        public GPoint() { Fx = 0; Fy = 0;}

        public GPoint(float x, float y)
        {
            Fx = x;
            Fy = y;
        }

        public float x
        {
            get { return Fx; }
            set { Fx = value; }
        }

        public float y
        {
            get { return Fy; }
            set { Fy = value; }
        }
    }

Автор: ivashkanet 10.1.2007, 14:40
Цитата(Artemon @  10.1.2007,  12:18 Найти цитируемый пост)
 вылетает Exception с огромным количеством предупреждений и ошибок

Эксепшен с предупреждением и ошибками быть не может  smile 

Предупреждения и ошибки выскакивают во время компиляции.
Эксепшены -- во время выполнения.

Что именно пишет?

Автор: Artemon 10.1.2007, 15:53
Да ты прав, там только ошибки, просто я так с казал, для того чтобы показать, что там очень много всего.


Автор: ivashkanet 10.1.2007, 16:00
Artemon, ну так давай их сюда, мы же не телепаты  smile 

P.S. Класс описан без ошибок

Автор: mr.DUDA 10.1.2007, 16:03
Класс GPoint надо сделать сериализуемым, и всё получится.

Автор: Artemon 11.1.2007, 11:24
Проблема снялась сама собой, не знаю почему но все стало работать без новых изменений.

Задам еще похожий вопрос:
Можноли в качестве параметра передать функции web service передать ссылку на объект, в нутри функции изменить его, а после выхода из функции (в вызывающем коде) получить новое значение (которое было задано внутри web service)

Добавлено @ 11:26 
А насчет выдаваемых ошибок, так я больше не могу их вызвать smile

Автор: Artemon 11.1.2007, 14:42
У меня есть сложный класс, я поставил у него атрибут [Serializable],
в результате я могу передавать объекты данного класса между web service и приложением, НО КЛАСС СТАЛ УРЕЗАННЫМ, я не вижу его методов.

Как сделать чтобы класс стал полноценным?

Автор: Artemon 11.1.2007, 16:16
Проблему по передачи любого объекта решил:

Посылка
Код

[WebMethod]
    public byte[] TEST()
    {
        BinaryFormatter serializer = new BinaryFormatter();
        RELATION_MASTER.OziMapLoader Ozi1 = new RELATION_MASTER.OziMapLoader(@"D:\ЧЕЛЯБИНСК\ЧЕЛЯБИНСК.map");

        System.IO.MemoryStream stream = new System.IO.MemoryStream();
        
        serializer.Serialize(stream, Ozi1);

        return stream.GetBuffer();
    }


Прием
Код

try
            {
                BinaryFormatter bf = new BinaryFormatter();
                stream = new System.IO.MemoryStream(S.TEST());
                Ozi1 = (RELATION_MASTER.OziMapLoader)bf.Deserialize(stream);
            }
            finally
            {
                stream.Close();
            }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)