Я пытаюсь вернуть сложный тип из метода службы в WCF. Я использую C# и .NET 4. Этот сложный тип должен быть инвариантным (так же, как и строки .net). Кроме того, служба возвращает ее и никогда не получает в качестве аргумента.WCF DataContract с свойствами readonly
Если я попытаюсь определить только геттеры на свойствах, я получаю ошибку времени выполнения. Я думаю, это связано с тем, что сеттеры не приводят к сбою сериализации. Тем не менее, я думаю, что этот тип должен быть инвариантным.
Пример:
[DataContract]
class A
{
[DataMember]
int ReadOnlyProperty {get; private set;}
}
служба не может загрузить из-за проблемы с сериализации.
Есть ли способ сделать readonly свойства в WCF DataContract? Возможно, заменив сериализатор? Если да, то как? Если нет, что бы вы предложили для этой проблемы?
Спасибо,
Асаф
Вы можете быть в состоянии использовать только для чтения поля (* не свойства *) и инициализировать их в конструкции вашего класса. Также ..., возможный дубликат: http://stackoverflow.com/q/1873741/945456 –
Это еще более важно сегодня с переходом к неизменяемым классам и поддержкой C# -6.0 для автоматически реализованных свойств get-only. – binki