C# 异常未序列化

C# 异常未序列化,c#,json,json.net,C#,Json,Json.net,我有一个例外类: [Serializable] public class LoginException : Exception { public LoginError LoginError { get; private set; } public LoginException(LoginError loginError) { this.LoginError = loginError; } public LoginException(Se

我有一个例外类:

[Serializable]
public class LoginException : Exception
{
    public LoginError LoginError { get; private set; }

    public LoginException(LoginError loginError)
    {
        this.LoginError = loginError;
    }

    public LoginException(SerializationInfo info, StreamingContext context)
    {
        if (info != null)
        {
            this.LoginError = (LoginError)info.GetValue("LoginError", typeof(LoginError));
        }
    }

    public override void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        base.GetObjectData(info, context);

        if (info != null)
        {
            info.AddValue("LoginError", this.LoginError);
        }
    }
}
当我从WebApi操作返回此异常时,我得到以下异常:

System.Runtime.Serialization.SerializationException:未找到成员“LoginError”。在System.Runtime.Serialization.SerializationInfo.GetElementString名称、类型和在System.Runtime.Serialization.SerializationInfo.GetValueString名称、类型上的foundType


我在这里遗漏了什么?

可能是LoginError属性中的私有标志出了问题?我认为您不能拥有带有私有设置器LoginError的公共属性它是什么LoginError?@Denis它是一个枚举。我仍然得到错误是属性为public get&set。我缺少一个没有参数的公共构造函数,这也是序列化所需的