У меня есть функция в веб-приложении vb. net, которым я пользуюсь уже 8 или 9 лет без проблем. Я хочу добавить эту функцию в веб-сервис, который будет возвращать объект, созданный в функции, но из веб-сервиса с именем DataInterface я получаю ошибку Constructor on type 'DataInterface.Release' not found.
. Упомянутый здесь Release
является отчетом Active Reports v11. Класс определен в веб-сервисе, и я могу вручную создать его с кодом Dim rpt2 as Release
, и он работает просто отлично, но по какой-то причине System.Type.GetType("Release", True, True)
вызывает ошибку Constructor on type 'DataInterface.Release' not found.
Это код функции:
Public Function CompilePacket(ByVal MyConnection As OracleConnection, ByVal MyDataSet As DataSet, ByVal pLeague As String) As Object
Dim packet As DataSet = GetPacket(MyConnection)
Dim MyDataRow As DataRow
Dim MyDataRow2 As DataRow
Dim MyDataSetClone As New DataSet
Dim DataTableCopy As DataTable = MyDataSet.Tables(0).Copy
Dim rpt As New AdditionalReport
Dim rpt2 As Object
Dim typename As String = ""
Try
For Each MyDataRow2 In MyDataSet.Tables(0).Rows
MyDataSetClone = MyDataSet.Clone
MyDataSetClone.Tables(0).ImportRow(MyDataRow2)
MyDataSetClone.Tables(0).TableName = "Data"
For Each MyDataRow In packet.Tables(0).Rows
rpt2 = New AdditionalReport
typename = "DataInterface." & MyDataRow("ObjectName") & ", DataInterface"
Dim type__1 As Type = System.Type.GetType(typename, True, True)
DirectCast(rpt2.Sections(0).Controls(0), GrapeCity.ActiveReports.SectionReportModel.SubReport).Report = Activator.CreateInstance(type__1)
rpt2.Sections(0).Controls(0).report.datasource = MyDataSetClone.Tables(0)
rpt2.run()
rpt.Document.Pages.AddRange(rpt2.Document.pages)
Next
Next
Catch ex As Exception
LogError("Error occured in CompilePacket function with report name: " & typename & " The error is: " & ex.Message)
End Try
Return rpt
End Function
Если мне нужно, я могу просто создавать отчеты отдельно и запускать их, проверяя известное имя в операторе If. Но это ограничило бы гибкость, которой я наслаждаюсь при создании этих отчетов, и я бы предпочел этого не делать. Если кто-то может объяснить и помочь решить проблему, я был бы признателен, если нет, то создание «вручную» - это мое единственное решение. Спасибо.
* Обновление *
Я даже не могу создать отчеты вручную, когда я пытаюсь использовать new Release()
, я получаю Object reference not set to an instance of an object.
Разочарование.