簡體   English   中英

WCF服務共享類型

[英]WCF Service Sharing Types

我正在編寫WCF服務和代碼以使用它,我想在這些服務之間共享數據類型。

我有一個WCF庫,其中包含要共享的類型。 我的WCF服務和WCF客戶端都引用了庫中的程序集。 類看起來像這樣:

<DataContract()> _
Public Class MyEntity

    Private _culture As String = String.Empty
    Private _name As String = String.Empty    

    <DataMember()> _
    Public Property ID As Integer
        Get
            Return _id
        End Get
        Set(ByVal Value As Integer)
            _id = Value
        End Set
    End Property


    <DataMember()> _
    Public Property Name() As String
        Get
            Return _name
        End Get
        Set(ByVal Value As String)
            _name = Value
        End Set
    End Property

End Class

我想在使用的應用程序中做的是創建MyEntity的實例,並將其值分配給服務中自然返回MyEntity實例的方法的返回值。

因此,當我從客戶端添加對我的服務的引用並將服務名稱空間命名為“ MyWCF”時,我想要這樣的內容:

Dim entity as new MyEntity
dim srv as new MyWCF.MyServiceClient
entity = srv.MyMethod()

現在,當我這樣做時,編譯器給我一個錯誤,因為它無法隱式將類型myclientnamespace.MySCF.Myclass轉換為myclientnamespace.MyClass。 我已閱讀的職位這里和文章在這里 -這是在另一個線程計算器引用。 這些國家,如果我的客戶端代碼引用相同的組件,我的服務代碼,我在我之前創建的服務,集引用引用客戶端代碼不應創建代理類和而被引用的實體集中使用的類。 我已經嘗試過了,但是它不起作用。 我什至確保在創建服務引用時,已選中“在所有引用的程序集中復用類型”單選按鈕。

我的問題是:

有人可以在這里看到我做錯了嗎? 在創建實體程序集引用之后創建服務引用是否不會導致重用類型?

是否可以通過這種方式重用類型?

任何建議將不勝感激。 謝謝!

完全有可能以這種方式重用您的類型。 如果您手動創建客戶端代理,則可以更好地控制此行為,包括命名空間。 代理不需要對共享數據類型做任何事情,它們可以從代理中排除,因此僅存在於共享程序集中的一個命名空間中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM