问题描述
当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:
- 使用[Model(SupportedIEditableObject = false)](但是
会丢失自动取消功能 - 使用自定义的序列化修饰符用[ExcludeFromSerialization]或
装饰失败的成员
这篇关于Catel使用EF实体模型自动创建ViewModel时出现SerializationException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!