Могу ли я сериализовать классы POCO? Я использую генератор сущности C# POCO.Сериализация объектов POCO
Я попытался отредактировать файл .tt, который генерирует классы сущностей, чтобы добавить атрибут Serializable. Это правильно?
Могу ли я сериализовать классы POCO? Я использую генератор сущности C# POCO.Сериализация объектов POCO
Я попытался отредактировать файл .tt, который генерирует классы сущностей, чтобы добавить атрибут Serializable. Это правильно?
Вы используете прокси POCO, а не чистые POCOs. Чистые POCOs могут быть сериализованы, если (очевидно) они сериализуемы. Прокси не может быть.
Мы не могли позволить себе отключить ProxyCreation (очевидное решение). Вместо этого мы использовали Value Injecter для его решения. Это так же просто, как:
var dynamicProxyMember = _repository.FindOne<Member>(m=>m.Id = 1);
var member = new Member().InjectFrom(dynamicProxyMember) as Member;
Наслаждайтесь!
Как я могу сериализовать POCOs, если я использую ADO.NET POCO Entity Generator для генерации объектов POCO? И когда я установил для свойства ProxyCreationEnabled контекста значение false, создание прокси-сервера уже отключено, поэтому я уверен, что не использую эти прокси. – jean27
Вы всегда можете сериализовать реальные POCOs. Если вы используете прокси-серверы, которые не являются POCOs, тогда вы должны проектироваться на реальные POCOs. Я обычно проектирую анонимные типы перед сериализацией, так как это не гарантирует круговых ссылок, которые в любом случае убивают сериализацию. –
Привет Крейг! Как вы впоследствии деириализуете анонимные типы? У меня также проблемы с круговыми ссылками, а затем подумал об использовании анонимных типов, но я не уверен, как их десериализировать ... не могли бы вы привести пример? Большое спасибо! –