XmlSerializer - Klasse ableiten



  • Ich habe eine serialisierbare Klasse:

    System::CodeDom::Compiler::GeneratedCodeAttribute(L"xsd", L"2.0.50727.42"), 
        System::SerializableAttribute, 
        System::Diagnostics::DebuggerStepThroughAttribute, 
        System::ComponentModel::DesignerCategoryAttribute(L"code"), 
        System::Xml::Serialization::XmlTypeAttribute(AnonymousType=true), 
        System::Xml::Serialization::XmlRootAttribute(Namespace=L"http:...", IsNullable=false)]
        public ref class Response {
    
            private: Header^  head;
            private: int number;
    
            /// <remarks/>
            public:  property Header^ Time {
                Header^  get();
                System::Void set(Header^ value);
            }
        };
    [Serializable...
    ...]
    public ref class Header {
    
            private: String^  time;
    
    get/set...
    }
    

    Ich rufe per ASP.Net [WebMethod] den Service auf und erhalte als Return meine Response-Klasse. Klappt alles einwandfrei.

    Dann leite ich von der Header-Klasse ab, füge neues Element dazu:

    public ref class MyHeader : public Header{
    
    public:
    String^ name;
    
    };
    
    [WebMethod]
    Response^ getMethod() {
    
    Response^ my = gcnew Response();
    MyHeader^ myH = gcnew MyHeader();
    myH->Name = "hans";
    my->time = "1400";
    ...
    return response;
    }
    

    Danach kommt bei Abruf des Service als Response: The type <namespace>.MyHeader was not expected...".
    Ich will im Grunde die eigentliche Header Klasse zurückgeben und die abgeleitete Klasse nur für interne Zwecke noch weiter befüllen.
    Lösung?


Anmelden zum Antworten