C# 序列化Lucene.net文档

C# 序列化Lucene.net文档,c#,serialization,lucene.net,C#,Serialization,Lucene.net,我需要序列化Lucene.net文档实例。当我尝试以下方法时 public bool Serialize(Document doc) { XmlSerializer serializer = new XmlSerializer(doc.GetType()); TextWriter writer = new StreamWriter(Path.Combine(_indexPath, String.Format("{0}{1}",Guid.NewGui

我需要序列化Lucene.net文档实例。当我尝试以下方法时

    public bool Serialize(Document doc)
    {
        XmlSerializer serializer = new XmlSerializer(doc.GetType());
        TextWriter writer = new StreamWriter(Path.Combine(_indexPath, String.Format("{0}{1}",Guid.NewGuid().ToString(), ".xml")));
        serializer.Serialize(writer, doc);
        writer.Close();
        return true;
    }
我收到一个异常,因为Lucene字段类型没有无参数构造函数

"Lucene.Net.Documents.Field cannot be serialized because it does not have a parameterless constructor."

有办法吗?是否有一种更为普遍接受的序列化Lucene.Net文档的方法?

即使可以,也不会有多大帮助,因为
文档的所有成员都是java风格的getXXX/setXXX方法(不是属性或字段)。最简单的方法是自己形成字段/值对,然后序列化它们

例如,您可以填充并序列化
MyDocument
class

public class MyDocument
{
    public List<MyField> Fields;
}

public class MyField
{
    public string Field;
    public string Text;
    public bool Indexed;
    public bool Stored;
}
公共类MyDocument
{
公共列表字段;
}
公共类MyField
{
公共字符串字段;
公共字符串文本;
公共布尔指数;
公共布尔存储;
}

因此,如果您要序列化文档,以便它可以被另一个进程索引,您会采取什么方法?@Dzejms不序列化文档,请以另一种格式(KeyValuePair、自定义类等)序列化数据。索引器进程可以读取这些数据,形成文档并对其进行索引。