ric*_*ard 7 .net c# inheritance serializable
参加考试,考试说我错了.以黄色标记的答案是假定的正确答案.
在下面的引用中,我认为粗体标记的部分是错误的:"Serializable属性不是由派生类继承的,因此如果您只使用Serializable属性标记Encyclopedia类,则运行时将在尝试序列化时抛出异常名称字段 ".

我实际上创建了一个示例项目,其中包含一个Animal类和一个Cat派生自该类的类.我标记了Cat课程[Serializable]而Animal课程没有.
我能够成功地序列化和反序列化Cat类,包括Animal属性.
这是.NET版本问题吗?考试是70-536,所以它的目标是2.0.
是的,基类也需要可序列化.一些简单的测试代码:
public class Animal
{
public Animal()
{
name = "Test";
}
public string name { get; set; }
}
[Serializable]
public class Cat : Animal
{
public string color {get; set;}
}
var acat = new Cat();
acat.color = "Green";
Stream stream = File.Open("test.bin", FileMode.Create);
BinaryFormatter bformatter = new BinaryFormatter();
bformatter.Serialize(stream, acat);
stream.Close();
Run Code Online (Sandbox Code Playgroud)
当您尝试序列化时,您会收到此错误:
在Assembly'SerializeTest,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'中键入'SerializeTest.Animal'未标记为可序列化.
编辑 - 我注意到你做了同样的事情,但它对你有用.你有使用的代码吗?这个是在.net 4中,但我不认为它在版本之间有太大的变化.
| 归档时间: |
|
| 查看次数: |
1041 次 |
| 最近记录: |