Return Entity Framework 对象作为 JSON 与 NancyFx
Return Entity Framework objects as JSON with NancyFx
我正在构建一个小型 API(用于读取操作 - GET),使用 NancyFX 和 C# 以及 .NET 4.0
我正在使用 Entity Framework 6.0 来访问 SQL Server 2008R2 数据库。
我向 Nancy 公开了以下路线(这仅用于测试目的):
public ExampleNancyModule()
{
Get["/v1/address_types"] = parameters =>
{
var address_types = context.address_type.First();
return Response.AsJson(address_types);
};
}
我可以使用 Postman 访问路由,但是我收到的响应正文是空的。我怎样才能return对象and/or与Nancy的对象列表?
我想还有更多配置需要先完成。我是 Nancy 的新用户,我今天早上才开始使用它。看起来很有希望!
感谢支持
我找到了这个案例的解决方案:
我已经将 Nancy 附带的默认 Json 序列化器更改为 NewtonSoft.Json
ExampleNancyModule 中的代码保持不变,但我添加了一个 Boostrap 文件来覆盖 Nancy 的默认行为。我的 Bootstrap.cs 文件如下所示:
namespace MyProject
{
public class Bootstrap : DefaultNancyBootstrapper
{
protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
base.ConfigureApplicationContainer(container);
container.Register<JsonSerializer, CustomJsonSerializer>();
}
}
public class CustomJsonSerializer : JsonSerializer
{
public CustomJsonSerializer()
{
this.ContractResolver = new CamelCasePropertyNamesContractResolver();
this.Formatting = Formatting.Indented;
}
}
}
有了这个,我可以获得一个 JSON 响应,该响应尊重我的 Entity Framework 模型的属性和 JSON 配置。希望这对其他人有帮助。
我正在构建一个小型 API(用于读取操作 - GET),使用 NancyFX 和 C# 以及 .NET 4.0
我正在使用 Entity Framework 6.0 来访问 SQL Server 2008R2 数据库。
我向 Nancy 公开了以下路线(这仅用于测试目的):
public ExampleNancyModule()
{
Get["/v1/address_types"] = parameters =>
{
var address_types = context.address_type.First();
return Response.AsJson(address_types);
};
}
我可以使用 Postman 访问路由,但是我收到的响应正文是空的。我怎样才能return对象and/or与Nancy的对象列表?
我想还有更多配置需要先完成。我是 Nancy 的新用户,我今天早上才开始使用它。看起来很有希望!
感谢支持
我找到了这个案例的解决方案:
我已经将 Nancy 附带的默认 Json 序列化器更改为 NewtonSoft.Json
ExampleNancyModule 中的代码保持不变,但我添加了一个 Boostrap 文件来覆盖 Nancy 的默认行为。我的 Bootstrap.cs 文件如下所示:
namespace MyProject
{
public class Bootstrap : DefaultNancyBootstrapper
{
protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
base.ConfigureApplicationContainer(container);
container.Register<JsonSerializer, CustomJsonSerializer>();
}
}
public class CustomJsonSerializer : JsonSerializer
{
public CustomJsonSerializer()
{
this.ContractResolver = new CamelCasePropertyNamesContractResolver();
this.Formatting = Formatting.Indented;
}
}
}
有了这个,我可以获得一个 JSON 响应,该响应尊重我的 Entity Framework 模型的属性和 JSON 配置。希望这对其他人有帮助。