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 配置。希望这对其他人有帮助。