У меня есть рабочее приложение, использующее Json.NET (newtonsoft) в качестве пользовательского сериализатора. В настоящее время я добавляю эту производную от WebHttpBehavior в пользовательскую WebServiceHostFactory. См. фрагмент кода в конце этот блог за то, как я его прикрепил.
Поскольку я размещаю эту службу в IIS, я хотел бы избавиться от своего пользовательского кода хостинга и просто добавить пользовательское поведение в свой файл web.config. Процедура показана в этой статье msdn.
Поэтому я пытаюсь сделать это так:
<behaviors>
<endpointBehaviors>
<behavior name="jsonRest">
<webHttp defaultOutgoingResponseFormat="Json" />
<NewtonsoftJsonBehavior/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add name="NewtonsoftJsonBehavior" type="Newtonsoft.Json.Extensions.NewtonsoftJsonBehavior, NewtonsoftJsonExtensions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
К сожалению, я не могу заставить это работать. Когда я это делаю, Visual Studio сообщает мне, что
Элемент «поведение» имеет недопустимый дочерний элемент «NewtonsoftJsonBehavior»
В вышеупомянутой статье msdn говорится, что
Чтобы добавить возможности конфигурации к элементу, вам необходимо написать и зарегистрировать элемент конфигурации. Дополнительные сведения об этом см. в документации System.Configuration.
После определения элемента и типа его конфигурации можно использовать расширение, как показано в следующем примере.
У меня такое чувство, что мне не хватает именно этого. Как-то зарегистрировать элемент и тип его конфигурации. К сожалению, я не могу разобраться в System.Configuration Который должен подсказать мне, как это сделать. Итак, это в основном мой вопрос:
Как мне написать и зарегистрировать элемент конфигурации, и если это не моя проблема, то в чем проблема?
Спасибо заранее!