Jev*_*sov 2 c# nosql document-database ravendb
假设我有这样的结构
public class Form
{
public List<Field> Fields { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Field类可以是复合的,也包括从Field类派生的其他Fields ,所以我有一些层次结构.表单作为可靠文档保存到RavenDB中,它可以正常工作.我只是想知道Form从RavenDB 获取实例,我希望Raven创建适当的类(类,派生自Field类).所以,假设我有两个派生类FieldDerived1,FieldDerived2并将它们放入后面的Fields集合中,Form我希望有两个实际类型的元素 - FieldDerived1并且FieldDerived2我添加了这些类的所有附加属性?
它会工作得很好.Raven使用Json.Net进行序列化,它将为您的数据添加$ type属性,以便可以正确地反序列化为正确的类型.
假设您的字段看起来像这样:
public class Field
{
public string Name {get; set;}
}
public class FieldDerived1 : Field
{
public int Length {get; set;}
}
public class FieldDerived2 : Field
{
public string Color {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
Raven将像这样存储Form类:
{
Fields: [
{
"$type": "YourNamespace.FieldDerived1, YourAssembly",
"Name": "foo",
"Length": 10
},
{
"$type": "YourNamespace.FieldDerived2, YourAssembly",
"Name": "bar",
"Color": "blue"
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
259 次 |
| 最近记录: |