【发布时间】:2014-06-21 13:08:45
【问题描述】:
我正在使用 QuickGraph 中的一个名为 AdjacencyGraph 的实用程序类,它具有复杂的内部结构。
我不关心复杂类的所有内部属性,我不能将它从 nuget 包中更改 - 最多在我的数据库中,我只关心存储可用于重建的 Dependency 对象数组AdacencyGraph:
public class Dependency
{
public Dependency(string source, string target)
{
this.Source = source;
this.Target = target;
}
public string Source { get; set; }
public string Target { get; set; }
}
在序列化时,我需要做的就是以下代码:
void Serialize(Dependencies toSerialize)
{
var toBeStored = toSerialize.GetAllDependencies();
// write this to mongodb somehow
}
然后反序列化构建 Dependencies 对象:
Dependencies Deserialize(IEnumerable<Dependency> hydrateFrom)
{
var dependencies = new Dependencies();
foreach(var d in hydrateFrom)
{
dependencies.SetRequiresFor(d.Source, d.Target);
}
}
问题
我将如何截取序列化过程和输出?
其他信息
我已经将 AdjacencyGraph 封装在一个类中,该类列出了所有 Dependency 对象,并且也可以接受 Dependency 对象的列表。
class Dependencies
{
private AdjacencyGraph<string, Edge<string>> relationshipGraph = new AdjacencyGraph<string, Edge<string>>();
public void SetRequiresFor(SkuId on, SkuId requires)
{
var toAdd = new Edge<string>(on.Value, requires.Value);
this.relationshipGraph.AddVerticesAndEdge(toAdd);
}
public IEnumerable<Dependency> GetAllDependencies()
{
foreach(var edge in this.relationshipGraph.Edges)
{
yield return new Dependency(edge.Source, edge.Target);
}
}
}
【问题讨论】:
标签: c# .net mongodb serialization mongodb-.net-driver