Я хочу импортировать записи из CSV-файла в БД из интерфейса Silverlight. Я использую сервис WCF для выполнения операций с БД. Когда я передаю полный путь к файлу (жестко запрограммированный), я могу добавить записи в БД, но поскольку OpenFileDialog в Silverlight не позволяет получить путь к файлу (по соображениям безопасности), я попытался использовать службу WCF и пройти либо свойство FileInfo, либо StreamReader, а затем выполните операции. Но это дает мне исключение. У меня есть следующий код -
1) Передача StreamReader
Файл Page.xaml.vb
Dim service As New ServiceReference1.Service1Client
dlg.ShowDialog()
Dim Reader As System.IO.StreamReader
If dlg.File IsNot Nothing Then
Reader = dlg.File.OpenText
End If
service.ImportPersonInfoAsync(Reader)
'Service1.svc.vb file
<OperationContract()> _
Public Sub ImportPersonInfo(ByVal Reader As System.IO.StreamReader)
'Code to add records to DB table
End Sub
Я получаю исключение - удаленный сервер возвратил ошибку: NotFound (в методе EndInvoke)
Public Sub EndImportPersonInfo(ByVal result As System.IAsyncResult) Implements ServiceReference1.Service1.EndImportPersonInfo
Dim _args((0) - 1) As Object
MyBase.EndInvoke("ImportPersonInfo", _args, result)
End Sub
2) Передача FileInfo
Page.xaml.vb file
If dlg.File IsNot Nothing Then
ImportFile = dlg.File
End If
service.ImportPersonInfoAsync(ImportFile)
Файл Service1.svc.vb
Public Sub ImportPersonInfo(ByVal ImportFile As System.IO.FileInfo)
Dim Reader As System.IO.StreamReader = ImportFile.OpenText
'Do operation
End Sub
Я получаю исключение в методе BeginInvoke - Попытка доступа к методу не удалась: System.IO.FileSystemInfo.get_Attributes ()
Может кто-нибудь помочь мне / предложить решение или лучший подход для импорта записей из csv в БД программным способом с использованием Silverlight.
Спасибо!