Biztalk 2006 R2プロジェクト(ESBガイダンス1で使用)があります。オーケストレーションからc#コードの静的メソッドを呼び出しています。このメソッドは、クラスを使用して、パート0でファイルデータをxlangメッセージ本文にロードします。内部クラスが存在しない場合は例外をキャッチしますが、スローしないでください(静的メソッドにはcatchブロックがあり、オーケストレーションには例外の実際の処理があります)
静的メソッドは次のとおりです。
public static XLANGMessage LoadFileIntoMessage(XLANGMessage message, string filePath,Encoding encoding)
{
try
{
IStreamFactory sf = new FileStreamFactory(filePath,encoding);
message[0].LoadFrom(sf);
return message;
}
catch (Exception ex)
{
throw ex;
}
}
ファイルストリームをロードするクラスは次のとおりです。
private class FileStreamFactory : IStreamFactory
{
string _fname;
Encoding _encoding;
public FileStreamFactory(string fname,Encoding encoding)
{
_fname = fname;
_encoding = encoding;
}
public Stream CreateStream()
{
try
{
StreamReader sr;
sr = new StreamReader
(
_fname,
_encoding
);
return sr.BaseStream;
}
catch (Exception ex)
{
throw ex;
}
}
}
オーケストレーションから静的メソッドを呼び出し、クラスとメソッドがそれを取得した後、オーケストレーションで例外をキャッチすることを期待しています。