【问题标题】:Issue with Serialization in RuntimeResourceManagerRuntimeResourceManager 中的序列化问题
【发布时间】:2012-08-29 07:13:10
【问题描述】:

帮我解决以下问题:

在程序集 'mscorlib, Version=2.0.0.0, Culture=neutral, 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 资源管理器 { 获取;放; }

提前致谢。

【问题讨论】:

  • @LolCoder:我应该怎么做,我不知道,因为我是 StackOverflow 的新手。请让我知道..
  • okies...知道了...任何人请为我的问题提供一些解决方案。

标签: c# serialization resourcemanager


【解决方案1】:

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

NonSerializedAttribute

编辑:进一步解释:

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

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

【讨论】:

  • 请您详细说明 [nonSerialize] 的作用。
  • 序列化相对复杂,这取决于您尝试实现的目标。为了回答您的问题,我正在编辑答案。
  • 感谢您的回复。实际上,在我的场景中,在服务器上上传新的 dll 之后,经过一些迭代后,我得到了上面提到的错误。所以让我先检查一下它是否解决了我的问题。
猜你喜欢
  • 2011-10-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-12
  • 1970-01-01
相关资源
最近更新 更多