自托管WCF休息服务错误:类型'Newtonsoft.Json.Linq.JToken'是一个不受支持的递归收集数据合约

时间:2015-06-10 14:39:43

标签: wcf rest json.net self-hosting

我有一个自托管的WCF Rest服务。它工作正常,直到我决定使用JToken(Newtonsoft.Json.Linq.JToken)。然后我得到了错误:

Type 'Newtonsoft.Json.Linq.JToken' is a recursive collection data contract which is not supported. Consider modifying the definition of collection 'Newtonsoft.Json.Linq.JToken' to remove references to itself.

我已经看到了post,此one和其他人的所有答案。事实是,我在一个内部程序中托管我的服务(在我工作的公司,无法显示它:-()。我这样做完全像它自己托管,但实现和接口我的服务不是作为WCF服务库,只是类库,所以我无法访问他们在答案中讨论的菜单(其中有:“在指定的引用程序集中重用类型”)。

我找不到任何解决方案,我想使用JToken。

这是我的服务合同:

[ServiceContract]
    public interface ISearchService
    {
        [OperationContract]
        [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json,
            UriTemplate = "search/")]
        List<Client> SearchClient(JToken jsonBody);
    }

我的托管工作就像在这篇帖子中完成的那样:How do I create WCF EndPointBehaviors in Code rather than the configuration?(我必须在没有配置文件的情况下完成)。

希望我的问题很明确。 谢谢你的帮助

0 个答案:

没有答案