C# 如何使用RestSharp反序列化类层次结构?

C# 如何使用RestSharp反序列化类层次结构?,c#,xml,deserialization,restsharp,C#,Xml,Deserialization,Restsharp,HTTP响应(文本/xml): 这里的目标是让RestSharp将HTTP响应反序列化到代码中的对象。但是,由于某些原因,只有结果状态的code属性被正确设置;Token属性始终为null。在这样的类层次结构中,反序列化对象的正确方法是什么?问题在于使用internal。我的猜测是,标记为internal的属性、类和方法甚至不能在运行时使用反射正确地嗅探。或者,如果可以的话,RestSharp可能在正确操作时遇到问题。在任何情况下,这都是有效的: public class Authenticat

HTTP响应(文本/xml):


这里的目标是让RestSharp将HTTP响应反序列化到代码中的对象。但是,由于某些原因,只有结果状态的
code
属性被正确设置;
Token
属性始终为
null
。在这样的类层次结构中,反序列化对象的正确方法是什么?

问题在于使用
internal
。我的猜测是,标记为
internal
的属性、类和方法甚至不能在运行时使用反射正确地嗅探。或者,如果可以的话,RestSharp可能在正确操作时遇到问题。在任何情况下,这都是有效的:

public class AuthenticationResponse : Response
{
    [DeserializeAs(Name = "OWASP_CSRF_TOKEN")]
    public OWaspCsrfToken CsrfToken { get; set; }

    public struct OWaspCsrfToken
    {
        [DeserializeAs(Name = "token")]
        public string Token { get; set; }
    }
}

编辑:事实上,我很确定反射可以看到内部方法。问题在于RestSharp无法对任何内部属性调用set方法。

问题在于使用
内部
。我的猜测是,标记为
internal
的属性、类和方法甚至不能在运行时使用反射正确地嗅探。或者,如果可以的话,RestSharp可能在正确操作时遇到问题。在任何情况下,这都是有效的:

public class AuthenticationResponse : Response
{
    [DeserializeAs(Name = "OWASP_CSRF_TOKEN")]
    public OWaspCsrfToken CsrfToken { get; set; }

    public struct OWaspCsrfToken
    {
        [DeserializeAs(Name = "token")]
        public string Token { get; set; }
    }
}
编辑:事实上,我很确定反射可以看到内部方法。问题是RestSharp无法对任何内部属性调用set方法

public class AuthenticationResponse : Response
{
    [DeserializeAs(Name = "OWASP_CSRF_TOKEN")]
    public OWaspCsrfToken CsrfToken { get; set; }

    public struct OWaspCsrfToken
    {
        [DeserializeAs(Name = "token")]
        public string Token { get; set; }
    }
}