是否有一種簡單的方法發送使用C#的應用程序之間的對象?這些對象不總是相同的,例如會有一個「請求」和「響應」類,並且連接的每一側都會有一種決定哪個對象已被接收的switch語句。簡單的TCP網絡與C#
是否有一種簡單的方法可以在C#中實現這樣的事情,而不需要第三方零件庫?
是否有一種簡單的方法發送使用C#的應用程序之間的對象?這些對象不總是相同的,例如會有一個「請求」和「響應」類,並且連接的每一側都會有一種決定哪個對象已被接收的switch語句。簡單的TCP網絡與C#
是否有一種簡單的方法可以在C#中實現這樣的事情,而不需要第三方零件庫?
WCF可以在這裏工作,你只需要設置一個接口來描述你要傳遞的對象。這裏是使用WCF for interprocess communication的好教程。
.NET遠程確實或多或少你想要什麼,你可以用你的接口類作爲做「switch語句」類
http://msdn.microsoft.com/en-us/library/kwdt6w2k(VS.71).aspx
最簡單的方式完成了原始的TCP連接這是爲了創建一個由連接兩端的應用程序引用的DLL。把所有的通信類放在這個DLL中,並標記每個類型爲Serializable
。這使對象可以進行二進制序列化,因此可以很容易地轉換成可以直接通過TCP連接傳遞的byte[]
。
如果你有一點flexbility你可能要考慮的東西有點較高水平,雖然像Remoting的服務或WCF
通過Tcp流進行序列化將是我Remoting的首選。而且WCF可能比這個操作要求的方式更加激烈。取決於整體使用情況,要求和/或期望。 – IAbstract 2010-01-30 22:22:22
如果不需要發送完整的二進制對象(邏輯指令)可以序列XML的請求和響應類並通過流發送文本。
「簡單」的定義也取決於您的要求。內置功能(例如WCF)不會被分類爲第三方庫,因此提供了一種在C#應用程序之間安全發送對象的簡單方法。 WCF可以爲您自動生成代理,因此您只需定義數據合同並公開您的服務即可。你可以在visual studio中添加一個服務引用,並且這些方法是公開的。
我將重新迭代,它確實取決於你想要做什麼,以確定最簡單的解決方案是什麼。
我總是試着將問題看作是在應用程序之間發送數據,而不是對象。分佈式對象模型幾乎總是以眼淚結束,因爲你沒有真的有共享狀態。
這個解決方案確實快速且容易。 – Russell 2009-12-04 00:30:50