我不使用 Newtonsoft.Json,但我收到一个错误,说找不到它



我有一个根本不使用Newtonsoft.Json库的HttpSelfHostServer程序,但我收到以下错误:

Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.
at System.Net.Http.Formatting.JsonMediaTypeFormatter..ctor()
at System.Net.Http.Formatting.MediaTypeFormatterCollection.CreateDefaultFormatters()
at System.Net.Http.Formatting.MediaTypeFormatterCollection..ctor()
at System.Web.Http.HttpConfiguration.DefaultFormatters()
at System.Web.Http.HttpConfiguration..ctor(HttpRouteCollection routes)
at System.Web.Http.SelfHost.HttpSelfHostConfiguration..ctor(Uri baseAddress)
at System.Web.Http.SelfHost.HttpSelfHostConfiguration..ctor(String baseAddress)

我的代码:

using System;
using System.Web.Http;
using System.Web.Http.SelfHost;
using System.Runtime.InteropServices;
using System.IO;
var selfHostConfiguraiton = new HttpSelfHostConfiguration("http://localhost:8080"); <- Error
selfHostConfiguraiton.Routes.MapHttpRoute(
  name: "DefaultApiRoute",
  routeTemplate: "endpoints/{controller}",
  defaults: null);
using (var server = new HttpSelfHostServer(selfHostConfiguraiton))
{
  Console.WriteLine("Server started");
  server.OpenAsync().Wait();
}

我确实在其他项目中使用 Json.NET,但不是这个项目。

此行发生错误

var selfHostConfiguraiton = new HttpSelfHostConfiguration("http://localhost:8080");

并且在 app.config 中没有引用它。

感谢您的建议。

谢谢你们,我找到了解决方案。将此添加到您的应用程序.config

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
  </dependentAssembly>
</assemblyBinding>

并且您需要在输出目录中包含Newtonsoft.Json.dll。

编辑:显然,从Nuget安装 Json.NET 对于较旧的WebApi自托管项目来说是一个重大更改,您需要引用Newtonsoft.Json.dll才能使它们工作。

您还需要引用以下 DLL:System.Net.Http.dll, System.Net.Http.Formatting.dll, System.Web.Http.dll, System.Web.Http.SelfHost.dll

祝你有美好的一天:)

JSON.NET 是 ASP.NET Web API不可或缺的一部分。 它具有DataContractJsonSerializer不支持的许多功能,例如在可以序列化的类型以及应该如何序列化它们方面更加灵活。您可以在下一个链接中找到它在 Web API 中的使用方式

相关内容

  • 没有找到相关文章

最新更新