У меня настроена веб-служба WCF с поддержкой Silverlight, и я подключаюсь к ней из своего приложения Silverlight.
Служба не написана с использованием шаблона ASync, но Silverlight автоматически генерирует асинхронные методы.
У меня есть метод, который в моем сервисе может вызвать исключение, я могу поймать это исключение, но я не уверен в лучшем способе обработки этого исключения, я заметил, что аргументы события завершены Метод содержит свойство ошибки.
Можно ли установить значение этого свойства ошибки?
Пример метода
public class service
{
[OperationContract]
public Stream getData(string filename)
{
string filepath = HostingEnvironment.MapPath(filename);
FileInfo fi = new FileInfo(filenpath);
try
{
Stream s = fi.Open(FileMode.Open);
return s;
}
catch (IOException e)
{
return null;
}
}
}
Код Silverlight
btnFoo_Click(object sender, RoutedEventArgs e)
{
ServiceClient svc = new ServiceClient();
svc.getDataCompleted += new EventHandler<getDataCompletedEventArgs>(getData_Completed);
svc.getDataAsync("text.txt");
}
void getData_Completed(object sender, getDataCompletedEventArgs e)
{
e.Error //how can i set this value on the service?
}
Наконец, если служба находится в автономном режиме или время ожидания истекло, есть ли способ перехватить это исключение, прежде чем оно достигнет метода UnhandledException в App.xaml?
Спасибо