gpt4 book ai didi

c# - 请向我解释一下这个 SerializationException

转载 作者:行者123 更新时间:2023-12-03 22:56:02 25 4
gpt4 key购买 nike

下面的简单类继承自 HashSet,因此必须实现 ISerialization 成员(以非标准方式)。当我尝试序列化然后反序列化 Group 的实例时,出现以下异常:

Test method UtilitiesTests.GroupTest.SerializeTest threw exception: System.Reflection.TargetInvocationException: Het doel van een aanroep heeft een uitzondering veroorzaakt. ---> System.Runtime.Serialization.SerializationException: Lid nameprop is niet gevonden..

不幸的是,这是荷兰语的。这意味着找不到成员“nameprop”!怎么了??

using System;
using System.Collections.Generic;
using System.Runtime.Serialization;

namespace Grouping
{
[Serializable]
public class Group<T> : HashSet<T>
{
public Group(string name)
{
Name = name;
}

protected Group(){}

protected Group(SerializationInfo info, StreamingContext context):base(info,context)
{
Name = info.GetString("nameprop");
}

protected new void GetObjectData(SerializationInfo info,StreamingContext context)
{
base.GetObjectData(info,context);
info.AddValue("nameprop", Name);
}

public string Name { get; private set; }
}
}

最佳答案

您的 GetObjectData 方法在序列化期间永远不会被调用,因为您没有重写父方法 - 您隐藏了它。您应该在那里使用override而不是new

关于c# - 请向我解释一下这个 SerializationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1214914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com