簡體   English   中英

跨WCF服務共享對象

[英]Sharing Objects across WCF Services

我遇到一個與此問題類似的問題: WCF和多個命名空間存在問題

我的主要區別在於我無法控制導線的兩端。 我的設置與此類似:

My.Objects My.LoginService My.Service1 My.Service2

您要做的第一件事是通過登錄服務登錄並收到安全票。 票證對象位於My.Objects命名空間中。 對於My.Service1和My.Service2中的每個后續呼叫,您都必須傳遞安全票證以對呼叫進行身份驗證。 我遇到的問題是,看到一個My.Objects.Ticket而不是客戶端(現在是一個.net,但將來還有一個Java),引用正在解析為My.LoginService.Ticket,My.Service1.Ticket,和My.Service2.Ticket。 當客戶端嘗試將在登錄期間檢索到的對象傳遞給任何其他函數時,它將收到對象不匹配錯誤。

如何使每個服務將對象解析為My.Objects命名空間?

看看NetDataContractSerializer ,這可能就是您想要的。 它與DataContractSerializer的不同之處在於,它在序列化的XML中包含CLR類型信息,該信息允許您共享您的類型,但強制電線的兩端使用相同的類型。

看看我整理的博客文章和一個屬性(來自我偶然發現的另一個博客),將其注入需要使用它的操作中:

http://theburningmonk.com/2010/08/wcf-using-the-netdatacontractserializer-to-share-your-type/

創建一個使用票證類型引用其中一項服務的程序集,然后從您的主項目中引用該程序集。

在客戶端和服務之間共享類型有一種簡單的方法,只需在添加服務引用之前將對共享類型程序集的引用添加到客戶端即可。

您可以在此處找到詳細的方案和示例項目:

http://blog.walteralmeida.com/2010/08/wcf-tips-and-tricks-share-types-between-server-and-client.html

暫無
暫無

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

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