Добавление свойств в WCF DataContract - PullRequest
1 голос
/ 06 октября 2011

Я добавил сервисную ссылку на мой веб-сервис WCF, который сгенерировал все мои объекты datacontract.Я использую BasicHttpBinding.Используя частичный класс, я сделал один из этих объектов наследуемым от другого класса, который добавляет к нему некоторые свойства.Теперь при вызове службы выдается ошибка:

Метод теста CP.Exg2010.Tests.UnitTest1.TestWCF выбросил исключение: System.ServiceModel.Dispatcher.NetDispatcherFaultException: средство форматирования выдало исключение во времяпри попытке десериализации сообщения: произошла ошибка при попытке десериализации параметра http://tempuri.org/:RunResult. Сообщение InnerException было «Ошибка в строке 1, позиция 283.« Элемент »« CommandResult »из пространства имен« uri: //mycomp.corp/ »line / exg2010 'не ожидается.Ожидается элемент '_EngineTracingData'. '.Пожалуйста, смотрите InnerException для более подробной информации.---> System.Runtime.Serialization.SerializationException: ошибка в строке 1, позиция 283. «Элемент» «CommandResult» из пространства имен «uri: //mycomp.corp/line/exg2010» не ожидается.Ожидаемый элемент '_EngineTracingData'.

CommandResult - это свойство, которое является частью WSDL._EngineTracingData - это личное поле, используемое свойством в базовом классе.

<XmlIgnore()> <SoapIgnore()> <Newtonsoft.Json.JsonIgnore()> _
Private _EngineTracingData As String = String.Empty
<XmlIgnore()> <SoapIgnore()> <Newtonsoft.Json.JsonIgnore()>
Public Property EngineTracingData As String Implements Interfaces.ICPMasterBaseInfo.EngineTracingData
    Get
        Return Me._EngineTracingData
    End Get
    Set(ByVal value As String)
        Me._EngineTracingData = value
    End Set
End Property

Я прочитал кое-что о десериализации, происходящей в алфавитном порядке, что объясняет, почему _EngineTracingData является первым.Но это поле / свойство даже не должно использоваться при десериализации!

Любая помощь будет оценена!

1 Ответ

0 голосов
/ 06 октября 2011

Ах, я нашел это!

Добавление

в приватных полях базового класса исправлена ​​моя проблема!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...