У меня есть рабочее приложение, использующее 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, который должен сказать мне, как это сделать. Так что в основном мой вопрос:
Как написать и зарегистрировать элемент конфигурации, и если это не моя проблема, в чем проблема?
Большое спасибо заранее!