2008-11-03 6 views
0

Vous rencontrez un problème lors de la tentative de création d'une fonction, dans le cadre d'une classe d'assistance BizTalk qui renvoie une valeur de type (Microsoft.XLANGs.BaseTypes.XLANGMessage). Le code de fonction est la suivante:Renvoyer une valeur de type Microsoft.XLANGs.BaseTypes.XLANGMessage

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; 
} 

Ce code ne construit pas que je reçois une erreur indiquant « Utilisation de la variable locale non affecté « outputFile »J'ai essayé d'initialiser le « outputFile » à l'aide du nouveau mot-clé (. . = new ....), mais entraîne également une erreur de construction

Qu'est-ce que je fais mal

Répondre

2

dans le code que vous avez fourni, changer la ligne:

XLANGMessage outputFile; 

à:

XLANGMessage outputFile = null; 

et changer le TypeOf à typeof

Vous pouvez jeter un oeil à ces deux meilleurs articles de blog here et here que les deux mentionnent des façons de le faire, y compris les classes qui passent sur la base votre xsd au lieu du XLANGMessage, et en utilisant un flux au lieu du XMLDocument.

Je ne suis pas sûr

Après avoir fait une fois sur ce rapide (parce que j'ai eu un mauvais pressentiment) si BizTalk consommera le retour XLANGMessage la façon dont vous essayez. Il échoue avec une erreur non construite lorsque j'essaie de l'utiliser dans mon harnais de test. Plus tard ce soir quand j'ai du temps libre, je verrai s'il y a un moyen facile d'utiliser le XLANGMessage directement dans les formes d'orchestration. Ajoutez un commentaire si vous parvenez à le faire fonctionner avant de mettre à jour.

0

Il n'est pas nécessaire de retourner XLangMessage dans ce cas. Vous pouvez renvoyer l'objet XmlDocument lui-même et lui assigner une nouvelle variable dans une forme de message de construction.

De même, ce n'est pas une bonne idée de renvoyer XLangMessage à partir du code utilisateur. Voir ici http://msdn.microsoft.com/en-us/library/aa995576.aspx

Questions connexes