#wcf
#wcf
Вопрос:
Я объясню свой дизайн класса
public class A
{
public Ilist<B> Something { get; set; }
}
public class B
{
public A ParentA { get; set; }
}
Теперь я пытаюсь передать A через WCF, и он просто выдает исключение. Есть ли какой-то атрибут, который я должен установить, чтобы заставить это работать, или это вообще невозможно в WCF
Комментарии:
1. Вам нужно принять еще несколько ответов. Вы получите больше ответов.
Ответ №1:
Попробуйте украсить класс A с:
[DataContract(IsReference = true)]
И класс B с только:
[DataContract]
Это сообщит WCF, что это типы, которые вы собираетесь использовать в своем сервисе, и IsReference
решит проблему циклических ссылок, а также сократит размер вашего сообщения. Вы также можете попробовать поиграть с установкой IsReference
на B, а не на A — я не помню точно, как это ведет себя с моей головы.
Ответ №2:
Вам необходимо использовать DataContracts
[DataContract]
[KnownType(typeof(B))]
class A
{
public Ilist<B> Something { get; set; }
}
[DataContract]
class B
{
public A ParentA { get; set; }
}