Domanda

Problemi durante il tentativo di creare una funzione, come parte di una classe di supporto BizTalk che restituisce un valore di tipo (Microsoft.XLANGs.BaseTypes.XLANGMessage). Il codice funzione è il seguente:

public XLANGMessage UpdateXML (XLANGMessage inputFile)
{
   XmlDocument xDoc = new XmlDocument();
   XLANGMessage outputFile;
   xDoc = (System.Xml.XmlDocument) inputFile[0].RetrieveAs(typeof(System.Xml.XmlDocument));

   // Modify xDoc document code here

   outputFile[0].LoadFrom(xDoc.ToString());
   return outputFile;
}

Questo codice non viene generato poiché viene visualizzato un errore che indica " Uso di una variabile locale non assegnata 'file di uscita'. Ho provato a inizializzare "outputFile" utilizzando la nuova parola chiave (= nuovo ....), ma ciò provoca anche un errore di compilazione.

Cosa sto sbagliando?

È stato utile?

Soluzione

Nel codice che hai fornito, cambia la riga:

XLANGMessage outputFile;

a:

XLANGMessage outputFile = null;

e modifica il TypeOf in typeof

Potresti dare un'occhiata a questi due articoli del blog qui e qui che entrambi menzionano alcuni modi migliori per farlo, tra cui il passaggio di classi basate su xsd anziché XLANGMessage e l'uso di uno stream anziché XMLDocument .


Dopo aver fatto una rapida occhiata con questo (perché ho avuto una brutta sensazione) non sono sicuro che BizTalk consumerà il XLANGMessage restituito nel modo in cui stai provando. Non riesce con un errore non ricostruito quando provo ad usarlo nel mio cablaggio di prova. Più tardi stasera, quando avrò un po 'di tempo libero, vedrò se c'è un modo semplice per usare XLANGMessage direttamente nelle forme di orchestrazione. Aggiungi un commento se riesci a farlo funzionare prima dell'aggiornamento.

Altri suggerimenti

In questo caso non è necessario restituire XLangMessage. Puoi restituire l'oggetto XmlDocument stesso e assegnargli una nuova variabile in una forma di messaggio di costruzione.

Inoltre non è una buona idea restituire XLangMessage dal codice utente. Vedi qui http://msdn.microsoft.com/en-us/library/ aa995576.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top