无法在Web API中将派生属性序列化为JSON

时间:2013-05-03 15:11:32

标签: c# asp.net-web-api entity-framework-5 json.net

我正在尝试获取此类型的对象(通过Web API):

public class Document 
{
    public int Id { get; set; }
    public FileFolder Folder { get; set; }
    public FileFolder FolderParent 
    {
        get
        {
            return FileFolder.Folder;
        }
    }
}

我收到错误:

“在'Domain.Document'上从'FolderParent'获取值时出错。”

1 个答案:

答案 0 :(得分:2)

我把一个快速的小例子放在一起,它序列化很好。好像bug必须来自FileFolder类设计中的某个地方,我们现在还没有。

[TestClass]
public class UnitTest8
{
    [TestMethod]
    public void TestJasonFileFolder()
    {
        var folder = new FileFolder();
        folder.Folder = new FileFolder { Name = "Parent" };
        folder.Name = "Something";

        var document = new Document { Folder = folder, Id = 1 };

        var test = JsonConvert.SerializeObject(document);
        Assert.IsNotNull(test);
    }
}

public class Document
{
    public int Id { get; set; }
    public FileFolder Folder { get; set; }
    public FileFolder FolderParent
    {
        get
        {
            return this.Folder.Folder;
        }
    }
}

public class FileFolder
{
    public string Name { get; set; }
    public FileFolder Folder { get; set; }
}