タイプMicrosoft.XLANGs.BaseTypes.XLANGMessageの値を返す
質問
タイプ(Microsoft.XLANGs.BaseTypes.XLANGMessage)の値を返すBizTalkヘルパークラスの一部として、関数を作成しようとして問題があります。機能コードは次のとおりです。
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;
}
"未割り当てのローカル変数の使用を示すエラーが表示されるため、このコードはビルドされません 「outputFile」。 newキーワード(= new ....)を使用して 'outputFile'を初期化しようとしましたが、ビルドエラーも発生します。
何が間違っているのですか?
解決
指定したコードで、次の行を変更します。
XLANGMessage outputFile;
to:
XLANGMessage outputFile = null;
そして TypeOf
を typeof
これら2つのブログ記事ここおよびここどちらも、XLANGMessageの代わりにxsdに基づいてクラスを渡すこと、および XMLDocument
の代わりにストリームを使用することを含む、これを行ういくつかのより良い方法に言及しています。
これを1回すばやく実行した後(気分が悪くなったため)、BizTalkが返された XLANGMessage
をあなたがしようとしている方法で消費するかどうかわかりません。テストハーネスで使用しようとすると、構築できないエラーで失敗します。今夜遅く、空き時間があるときに、オーケストレーション図形で XLANGMessage
を直接使用する簡単な方法があるかどうかを確認します。更新する前にコメントを追加してください。
他のヒント
この場合、XLangMessageを返す必要はありません。 XmlDocumentオブジェクト自体を返し、Construct Message Shapeで新しい変数を割り当てることができます。
また、ユーザーコードからXLangMessageを返すことはお勧めできません。 こちらをご覧ください http://msdn.microsoft.com/en-us/library/ aa995576.aspx