我有一个使用 Json.NET (newtonsoft) 作为自定义序列化程序的工作应用程序。目前,我正在自定义 WebServiceHostFactory 中添加 WebHttpBehavior 的这种派生。请参阅本博客末尾的代码片段,了解我是如何附加它的。
当我在 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做出正面或反面,它应该告诉我如何做到这一点。所以这基本上是我的问题:
我如何编写和注册配置元素,如果这不是我的问题,那么问题是什么?
提前谢谢了!