模型自动创建ViewModel时出现SerializationE

模型自动创建ViewModel时出现SerializationE

本文介绍了Catel使用EF实体模型自动创建ViewModel时出现SerializationException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当Catel尝试自动创建属于视图的ViewModel类的实例时,我收到一个SerializationException抱怨说System.Data.Entity.DynamicProxies是不可预期的。
该模型是EF 6.1实体(继承自ModelBase),我使用的是Catel 3.9。
如何防止这种情况?

When Catel attempts to auto create an instance of the ViewModel class belonging to a view I get a SerializationException complaining that System.Data.Entity.DynamicProxies is not expected.The Model is an EF 6.1 Entity (inherits from ModelBase) and I am using Catel 3.9.How do I prevent this ?

推荐答案

注意:这全部适用于Catel 4.0(最新的预发行版本) ,因为它是稳定的并且有很多改进)。

Catel出于IEditableObject实现的目的而对模型进行序列化。使用Model属性时,它将尝试序列化成员。您有2个选择:

Catel serializes the model for the purpose of the IEditableObject implementation. When using the Model attribute, it tries to serialize the members. You have 2 options:


  1. 使用[Model(SupportedIEditableObject = false)](但是
    会丢失自动取消功能

  2. 使用自定义的序列化修饰符用[ExcludeFromSerialization]或
    装饰失败的成员

这篇关于Catel使用EF实体模型自动创建ViewModel时出现SerializationException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 01:37