Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> wcf + silverlight вопрос 
:(
    Опции темы
tapa
Дата 6.12.2011, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 23.1.2010

Репутация: нет
Всего: нет



Привет. Ситуация такая:

На сервере, где крутится wcf сервис есть класс

Код

     public class ClassA
    {
        public string name;

        public List<ClassB> elmnts;
    }

    public class ClassB
    {
        public int id;

        public ClassB parent;

        public List<ClassB> childrens;
    }


а так же функция сервиса, для проверки работы
Код

        public ClassA Test()
        {
            var ca = new ClassA()
            {
                name = "lala",
                elmnts = new List<ClassB>()
            };

            var cb1 = new ClassB() { id = 1,parent = null, childrens = new List<ClassB>() };

            cb1.childrens.AddRange(new List<ClassB>(){
                        new ClassB(){id =11,  parent = cb1, childrens = new List<ClassB>()},
                        new ClassB(){id =12, parent = cb1, childrens = new List<ClassB>()},
                        new ClassB(){id =13, parent = cb1, childrens = new List<ClassB>()}
                    });
            var cb2 = new ClassB() { id = 2, parent = null, childrens = null };

            ca.elmnts.Add(cb1);
            ca.elmnts.Add(cb2);

            return ca;
        }



и на клиенте вылетает ошибка Not Found  в с генерированном студией коде.

однако, если убрать поле "public ClassB parent", то всё ок. данные передаеются,ошибки нет. это изза того, что получается "замкнутый круг" ? дети указывают на родителей  не получается сериализовать данные?
Вопрос - как пофиксить ?smile




PM MAIL   Вверх
tapa
Дата 6.12.2011, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 23.1.2010

Репутация: нет
Всего: нет



можно так
http://chabster.blogspot.com/2008/02/wcf-c...es-support.html

или вот так
Код

    [DataContract(IsReference = true)]
    public class ClassA
    {
        [DataMember]
        public string name;
        [DataMember]
        public List<ClassB> elmnts;
    }

    [DataContract(IsReference=true)]
    public class ClassB
    {
        [DataMember]
        public int id;
        [DataMember]
        public ClassB parent;
        [DataMember]
        public List<ClassB> childrens;
    }

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0608 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.