Действительно ли возможно Сериализировать объект LINQ?

Для сортировки ArrayList вы можете использовать следующий фрагмент кода:

Collections.sort(studList, new Comparator<Student>(){
    public int compare(Student s1, Student s2) {
        return s1.getFirstName().compareToIgnoreCase(s2.getFirstName());
    }
});
14
задан Mykroft 1 December 2008 в 21:57
поделиться

4 ответа

С linq-to-sql (от тегов), затем да: можно отметить dmbl как сериализуемый, который использует [DataContract] / [DataMember] подход. Вы делаете это путем установки "Режима Сериализации" на "Однонаправленный" в разработчике, или можно сделать это в самом dbml:

<Database ... Serialization="Unidirectional">...

можно затем использовать DataContractSerializer или NetDataContractSerializer для записи этого (как xml или двоичный файл соответственно). Если Вам будет нужно что-то портативное (т.е. не конкретный MS/.NET), то protobuf-сеть сериализирует контракты данных с помощью "буферной спецификации" протокола.

18
ответ дан 1 December 2019 в 08:53
поделиться

Следование совету Marc Gravell, который я записал следующим двум блокам кода, которые работали красиво:

relation_table row = db.relation_tables.First();

MemoryStream memStream = new MemoryStream();
NetDataContractSerializer ndcs = new NetDataContractSerializer();
ndcs.Serialize(memStream, row);

byte[] stuff = memStream.toArray();

memStream = new MemoryStream(stuff);
row = ndcs.Deserialize(memStream);

db.relation_tables.Attach(row);
Console.WriteLine(row.data_table1.somedata + ": " + row.more_data);

Присоединение () вызов заполняет зависимости от внешнего ключа для меня и связывает объект с контекстом данных.

6
ответ дан 1 December 2019 в 08:53
поделиться
5
ответ дан 1 December 2019 в 08:53
поделиться

Классы Linq являются частичными классами. Можно изменить определение, чтобы отметить классы как реализацию ISerializable и затем предоставить код...

public partial class User : ISerializable
{
  // implement GetObjectData here
}

могли бы все еще быть проблемы с десериализацией, однако (я не 100% на этом). Альтернатива должна использовать XML-сериализацию и реализацию IXmlSerializable, который имеет методы для сериализации и десериализации, позволяя Вам управлять всем процессом...

2
ответ дан 1 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: