这是我的视图模型:
[Serializable]
public class MyViewModel
{
public int VendorId { get; set; }
public HttpPostedFileBase SpreadsheetFile { get; set; }
public IEnumerable<Vendor> Vendors { get; set; }
}
我正在用数据加载视图模型,并将其传递给视图并序列化它:
@Html.Serialize("MyModel", myViewModel)
但是我得到了这个错误
“类型”系统。网状物无法序列化HttpPostedFileWrapper“”。考虑使用DATACONTractAttor属性对其进行标记,并标记要使用DATAMEMBAREATE属性序列化的所有成员。如果类型是集合,请考虑用CopyDATAcNoTractAttor标记它。见微软。其他受支持类型的NET Framework文档。
我不知道如何用DataContractAttribute标记某些内容。是否有方法将HttpPostedFileBase属性标记为不可序列化?
将电子表格文件更改为具有支持字段的属性,并将支持字段标记为非序列化
[NonSerialized]
private HttpPostedFileBase _spreadSheetFile;
public HttpPostedFileBase SpreadsheetFile {
get { return _spreadSheetFile; }
set { _spreadSheetFile = value; }
}
序列化程序将尊重后备字段上的贡品。即使是自动实现的属性也有编译器生成的后备字段。序列化程序使用后备字段,而不是属性。
尝试标记它非序列化。
[Serializable]
public class MyViewModel
{
public int VendorId { get; set; }
[NonSerialized]
public HttpPostedFileBase SpreadsheetFile { get; set; }
public IEnumerable<Vendor> Vendors { get; set; }
}
我有一门课是这样的: 但是当我试图序列化它时,我收到一个错误,上面写着“试图序列化java.lang.class:java.lang.字符串。忘记注册一个类型适配器了吗?”。所以我创建了这个适配器: } 并登记如下: 但我还是犯了同样的错误<我做错了什么 适配器的实现看起来正常吗?
我试图使用混合序列化集合,但Jackson不会保存类型信息。这是一个基本测试,说明会发生什么: 如何在第一个输出上实现输出?
我需要通过(.NET Framework内置类型)。由于此类型本身无法序列化,因此我从中派生了助手类: 它严重地序列化为XML;然而,当我试图将其传递给服务调用时,我得到了System.运行时。连载。无效数据合同异常: “类型”系统。网网络信息。无法序列化PhysicalAddress“”。考虑使用DATACONTractAttor属性对其进行标记,并标记要使用DATAMEMBAREATE属性序列
序列化和反序列化的方式不同于 我已经创建了两个序列化程序 和 我用Jackson查看了序列化/反序列化映射 ,但找不到解决方案。
我有一个带有Object类型属性的基类型(一段遗留代码,许多项目都使用这个基类型)。后来添加了基类型的泛型版本,将属性公开为泛型类型。 使用ServiceStack.Text序列化和反序列化泛型类型将设置基类(type object)上的属性,而不是派生类上更特定的类型。 重现错误的简单控制台应用程序如下所示: 感谢任何帮助。 基于这个答案,我通过使和从一个新的抽象基类继承来解决这个问题,如下所示
我需要将包含类型为Pair的对象的列表序列化为xml 首先,我创建了一个类PairList来保存对的列表,然后我创建了一个实际的类,它表示一对两个值,key和value。 然后,我尝试序列化它: 不幸的是,我遇到了一个异常:。欢迎任何关于如何避免此异常并序列化该类的想法。 如果我选择不序列化ttype和utype字段(通过将其设置为受保护或私有),则序列化有效。我不明白为什么它不想序列化类型字段。