У меня есть проект Biztalk 2006 R2 (используется с руководством ESB 1)
Я звоню из orchstration к статическому методу в коде c #, этот метод использует класс для загрузки данных файла в тело сообщения xlang в части 0
Когда я передаю filepath, который не существует, внутренний класс перехватывает исключение, но не выдает его (в статическом методе есть блок catch, а в orchstration есть реальная обработка исключения)
Статический метод:
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;
}
}
}
Я вызываю статический метод из оркестровки и ожидаю перехвата исключения в моей оркестрации после класса, и метод получает его.