删除后序列化模型

时间:2018-10-26 15:55:30

标签: c# asp.net-mvc

首先,我是一个C#垃圾开发人员,所以请不要对我开火,但下面是我正在尝试做的事情以及我正在尝试但不起作用的代码示例。

目标:获取一个模型,将其序列化为json,然后将该json写入磁盘上的文件中。

型号:

namespace My.Dope.Model
{
    [Serializable]
    public class Theme
    {
        [DisplayName("Company Name: ")]
        public string CompanyName { get; set; }


        [DisplayName("Slogan: ")]
        public string Slogan { get; set; }


        [DisplayName("Primary Color: ")]
        public string PrimaryColor { get; set; }


        [DisplayName("Large Logo: ")]
        public HttpPostedFileBase LargeLogo { get; set; }

        [DisplayName("Small Logo: ")]
        public HttpPostedFileBase SmallLogo { get; set; }
    }
}

一些代码可以序列化并将其保存到磁盘:

using (StreamWriter file = File.CreateText(@"D:\test_theme_json.txt"))
                {
                    JsonSerializer serializer = new JsonSerializer();
                    //serialize object directly into file stream
                    serializer.Serialize(file, theme);
                }

错误:

  

无法序列化会话状态。在“ StateServer”和“ SQLServer”模式下,ASP.NET将序列化会话状态对象,因此,不允许不可序列化的对象或MarshalByRef对象。如果自定义会话状态存储在“自定义”模式下进行了类似的序列化,则存在相同的限制。

我认为这是因为模型中有HttpPostedFileBase个项目,但实际上我不需要那些序列化到JSON文件中的项目。如何删除这些项目,并将模型的其余部分转换为保存到磁盘的.json文件?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

  

我实际上不需要那些序列化到JSON文件中的

在JSON.NET中,您可以使用[JsonIgnore]属性来修饰属性。

相关:Newtonsoft ignore attributes?

答案 1 :(得分:0)

要序列化并将其写入文件,只需执行以下操作:

Word64
相关问题