1

帮我解决以下问题:

在程序集“mscorlib,版本=2.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089”中键入“System.Resources.RuntimeResourceSet”未标记为可序列化。

示例代码:

[可序列化]
    公共类 clsModelClass
    {
        私有列表 _obj1 = 新列表();
        私有列表 _obj2 = 新列表();
        公共 System.Resources.ResourceManager 资源管理器 { 获取;放; }

        公共字符串 Property1 { 获取;放; }
        公共长属性2 {获取;放; }
        公共字符串 Property3 { 获取;放; }
    }

[可序列化]
    公共类 clsTestClass
    {
        公共静态字符串 staticObj1 = "staticObj1";
        公共静态字符串 staticObj2 = "staticObj2";
        公共静态字符串 staticObj3 = "staticObj3";
    }

是不是因为:

公共 System.Resources.ResourceManager 资源管理器 { 获取;放; }

因为 ResourceManager 类没有被序列化。我应该使用 [nonSerialize] 之类的吗

[非序列化]
公共 System.Resources.ResourceManager 资源管理器 { 获取;放; }

提前致谢。

4

1 回答 1

1

是的,您需要标记不可序列化的对象,这可能会有所帮助:

非序列化属性

编辑:进一步解释:

IFormatter formatter = new BinaryFormatter();             
IFormatter formatter = new SimpleIniFormatter();
FileStream s = new FileStream(fileName, FileMode.Create);
formatter.Serialize(s, line);`

在此示例中,NonSerialized 意味着 BinaryFormatter 将忽略任何被标记为非序列化的内容。使用上面的例子来玩。创建的文件有点可读。其中行是一些标记为可序列化的对象

于 2012-08-29T07:34:16.020 回答