2

我正在学习如何使用 WCF Web 服务访问数据库上的数据。我遇到的主要问题是,当从服务调用结果时,返回值的类型是 UniversityClass 但没有可用的属性,我相信它的真实类型只是一个对象,因此我无法访问它的任何“真实”属性。

这是我的界面中名为“Service1”的类的片段

<ServiceContract()>
Public Interface IService1

    <OperationContract()>
    Function GetUniversity(ByVal universityID As Integer) As UniversityClass

End Interface

<DataContract()>
Public Class UniversityClass

    Private _universityId As Integer

    Public Property UniversityID As Integer
        Get
            Return _universityId
        End Get
        Set(value As Integer)
            _universityId = value
        End Set
    End Property

这是我调用服务以获取数据的预览

    Dim client As New ServiceReference1.Service1Client
        Dim result As New ServiceReference1.UniversityClass

        Dim x = client.GetUniversityAsync(Integer.Parse(tbUniversityID.Text))
        Dim r As WCFServiceExample.ServiceReference1.UniversityClass = Await x
        If x.IsCompleted Then
            result = x.Result
        End If

        tbResult.Text = result. _ _ _ _

'// ^ No properties accessible here even though it recognizes that result is of type UniversityClass

在检查 ServiceReference1.UniversityClass 后,我被带到 Referenceece.vb 并注意到有继承对象的 Partial Class UniversityClass。我认为这可能是我无法访问我的 Service1 类中定义的属性的原因,因为它认为 UniversityClass 是一个没有类型的对象。

我已经尝试单独重建所有项目,重建解决方案,但仍然没有。

希望获得有关如何实际获得 UniversityClass 类型的对象以从我的服务中返回的帮助。

识别类型: http: //i50.tinypic.com/e5mhvk.jpg 无可用属性:http: //i50.tinypic.com/wmjui9.jpg

任何帮助将不胜感激!

4

1 回答 1

1

您的客户看不到 UniversityID,因为您尚未将其标记为数据成员:

<DataContract()>
Public Class UniversityClass

    Private _universityId As Integer

    <DataMember()>
    Public Property UniversityID As Integer
        Get
            Return _universityId
        End Get
        Set(value As Integer)
            _universityId = value
        End Set
    End Property
于 2012-09-09T04:55:29.250 回答