2009-12-04 170 views
1

是否有一種簡單的方法發送使用C#的應用程序之間的對象?這些對象不總是相同的,例如會有一個「請求」和「響應」類,並且連接的每一側都會有一種決定哪個對象已被接收的switch語句。簡單的TCP網絡與C#

是否有一種簡單的方法可以在C#中實現這樣的事情,而不需要第三方零件庫?

回答

2

.NET遠程確實或多或少你想要什麼,你可以用你的接口類作爲做「switch語句」類

http://msdn.microsoft.com/en-us/library/kwdt6w2k(VS.71).aspx

+0

這是行得通的,但是你會在空間和網絡流量上產生很大的(r)開銷。 – monksy 2009-12-04 00:25:25

+0

.net remoting是WCF的前身。認真考慮使用WCF,同時考慮.net遠程處理。更高級別的傳輸的價值,de /序列化對象的易用性和IDE支持超出開銷。 – Russell 2009-12-04 00:29:34

+0

(參考以前的評論):http://msdn.microsoft.com/en-us/library/72x4h507%28VS.85%29.aspx – Russell 2009-12-04 00:30:15

3

最簡單的方式完成了原始的TCP連接這是爲了創建一個由連接兩端的應用程序引用的DLL。把所有的通信類放在這個DLL中,並標記每個類型爲Serializable。這使對象可以進行二進制序列化,因此可以很容易地轉換成可以直接通過TCP連接傳遞的byte[]

如果你有一點flexbility你可能要考慮的東西有點較高水平,雖然像Remoting的服務或WCF

+0

通過Tcp流進行序列化將是我Remoting的首選。而且WCF可能比這個操作要求的方式更加激烈。取決於整體使用情況,要求和/或期望。 – IAbstract 2010-01-30 22:22:22

2

如果不需要發送完整的二進制對象(邏輯指令)可以序列XML的請求和響應類並通過流發送文本。

1

「簡單」的定義也取決於您的要求。內置功能(例如WCF)不會被分類爲第三方庫,因此提供了一種在C#應用程序之間安全發送對象的簡單方法。 WCF可以爲您自動生成代理,因此您只需定義數據合同並公開您的服務即可。你可以在visual studio中添加一個服務引用,並且這些方法是公開的。

我將重新迭代,它確實取決於你想要做什麼,以確定最簡單的解決方案是什麼。

0

我總是試着將問題看作是在應用程序之間發送數據,而不是對象。分佈式對象模型幾乎總是以眼淚結束,因爲你沒有真的有共享狀態。