Deserialisieren von xml zu einem Objekt aus webapi

Aus Gründen, die ich nicht' gehen in hier, ich kann nicht, verwenden Sie den Objekt-Typ als parameter in meine webapi controller. Also, ich muss herausfinden, einen Weg zu Deserialisieren des xml-Objekt in mein c# - Objekt mithilfe von XmlDocument, oder etwas ähnliches.

Hier ist, was ich habe, so weit:

    public void Post(HttpRequestMessage request)
    {
        var xmlDoc = new XmlDocument();
        xmlDoc.Load(request.Content.ReadAsStreamAsync().Result);
        using (XmlReader xmlReader = new XmlNodeReader(xmlDoc))
        {
            Object obj = new XmlSerializer(typeof(myObject)).Deserialize(xmlReader);
            myObject scp = (myObject)obj;
        } 
    }

leider wirft Fehler. Kann jemand geben einige Anregung, wie kann ich meine xml-Deserialisieren in meinem Objekt?

tia

Edit: hier ist das xml, das ich versuche zu Deserialisieren:

<Student>
<studentid>1234</studentid>
<command>post</command>
<posttype>charge</posttype>
<transaction_description>This is a test post to the web api</transaction_description>
<payment_type>CC</payment_type>
<term_code>2013SPRING</term_code>
<amount>432.75</amount>
</Student>

und hier ist der Fehler, die ich immer bin:

System.InvalidOperationException: war nicht zu erwarten.
Generiert: Wed, 19 Mar 2014 20:18:58 GMT

System.InvalidOperationException: Es ist ein Fehler in XML-Dokument
(1, 2). ---> System.InvalidOperationException: war
nicht zu erwarten. bei
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderStudentChargepost.Read3_StudentChargePost()
--- Ende der inneren Ausnahme-stack-trace - - - at System.Xml.Serialisierung.XmlSerializer.Deserialisieren(XmlReader
xmlReader, String encodingStyle, XmlDeserializationEvents Ereignisse)

System.Xml.Serialisierung.XmlSerializer.Deserialisieren(Stream stream)

bei
CashNetSSO.Controller.API.StudentInformationPostController.Post(HttpRequestMessage
Anfrage)
C:\Projects\CashNetSSO\Development\CashNetSSO\CashNetSSO\Controllers\API\StudentInformationPostController.cs:line
23 bei lambda_method(Schließung , Objekt , Object[] ) bei
System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c_DisplayClassf.b_9(Objekt
Instanz, Object[] methodParameters) bei
System.Web.Http.Controller.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object
Instanz, Object[] arguments) bei
System.Web.Http.Controller.ReflectedHttpActionDescriptor.<>c_DisplayClass5.b_4()
System.Threading.Aufgaben.TaskHelpers.RunSynchronously[TResult](Func`1
func, CancellationToken cancellationToken)

Schreibe einen Kommentar