locked
List(of clsField) está ocasionando erro quando faz a referencia do wcf no projeto RRS feed

  • Pergunta

  • Boa noite.

    Quando eu vou fazer a referencia do Service3.svc dá erro:  Error 8 Custom tool error: Failed to generate code for the service reference 'ServiceReference1'.  Please check other error and warning messages for details.

    Fiz um teste, modifiquei o retorno da função GetData para String e o Service3.svc foi adicionado à referencia. O problema está no list(of clsField).

    Alguém saberia me informar o porque do problema ?

    Service3.svc

    Imports System.ServiceModel
    Imports System.ServiceModel.Activation
    Imports System.Data.SqlClient
    
    <ServiceContract(Namespace:="")>
    <SilverLightFaultBehavior()>
    <AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)>
    Public Class Service3
    
        <OperationContract()>
        Public Function GetData(ByVal query As String) As List(Of clsField)
    
            Dim list As New List(Of clsField)
            Dim con As New SqlConnection()
            Dim stringCon As String = String.Format("Server={0};database={1};User Id=dbagestao;Password={2};Min Pool Size=50;Max Pool Size=500;Application Name={3}", "xxx.xxx.x.x", "xxx", "xxxxxx", "xxxx")
            con.Open()
            Dim command As New SqlCommand(query, con)
            Dim drCampo As SqlDataReader = command.ExecuteReader()
            While drCampo.Read
    
                list.Add(New clsField(drCampo("tra_cod"), drCampo("tra_descr"), Nothing, Nothing, Nothing, Nothing))
    
            End While
    
            con.Close()
            con.Dispose()
            con = Nothing
            Return list
    
        End Function
    
    End Class

    clsField

    Imports System.Runtime.Serialization
    
    <DataContract()>
    Public Class clsField
    
        Public Sub New()
        End Sub
    
        Public Sub New(ByVal _pk_field As String, ByVal _fk_field As String, ByVal _maintable As String, ByVal _id As String, ByVal _is_visible As String, ByVal _is_readonly As String)
            pk_field.Add(_pk_field)
            fk_field.Add(_fk_field)
            maintable.Add(_maintable)
            id.Add(_id)
            is_visible.Add(_is_visible)
            is_readonly.Add(_is_readonly)
        End Sub
    
        <DataMember()>
        Public Property pk_field As New List(Of String)
    
        <DataMember()>
        Public Property fk_field As New List(Of String)
    
        <DataMember()>
        Public Property maintable As New List(Of String)
    
        <DataMember()>
        Public Property id As New List(Of String)
    
        <DataMember()>
        Public Property is_visible As New List(Of String)
    
        <DataMember()>
        Public Property is_readonly As New List(Of String)
    
    End Class
    quinta-feira, 12 de abril de 2012 21:28

Todas as Respostas

  • Rafael,

    Não sei se é muito tarde para responder sua pergunta, mas desconfio que o problema não esteja no exemplo que foi passado, isso por que a mensagem aparentemente é problema na serialização dos objetos e não está relacionada ao Silverlight em si e sim ao WCF. Já tentou utilizar esse serviço em um projeto de outro tipo, por exemplo WebApplication ou Windows Application. Se sim e funcionou, eu percebi que você utilizou ADO no WCF para fazer as buscas. Essa classe clsField tem algum componente do ADO tipo DataTable, DataSet, DataRow, pois até aonde eu sei, o SDK do Silverlight não possui estas bibliotecas. Se não funcionou. Exite alguma propriedade com um tipo bem complexo como por exemplo, uma Exception, SqlDataReader, SqlCommand, SqlDataAdapter etc?


    Samuel Fabel

    sexta-feira, 11 de maio de 2012 18:04