remoting雖然都出了好多年了,但我們專案有一部分還在用remoting,前段時間乙個同事說,我的乙個remoting服務端版本公升級後,方法中其中乙個引數是乙個類物件,但這個物件新增了一些字段,但由於客戶端沒公升級好,還用老的物件去呼叫,是否會有問題。經過簡單測試,我發現完全沒問題,可以互相呼叫。
測試了三種情況:
1、 客戶端的類物件比服務端少一些字段。
2、 客戶端的類物件比服務端多一些字段。
3、 客戶端的類物件和服務端物件不一樣,命名都一樣。
最後證明第
一、二種情況都是沒問題的,第三種情況如果物件命名空間和程式集名稱一樣,也是沒有問題的(類庫沒有進行任何簽名)。
測試工程如下:
common是公共類庫和介面預定。
commonii是和common包含一樣的檔案,命名控制項和生成的類庫都一樣。
payserver是remoting服務端,引用common和payservicehandler。
payservicehandler是處理remoting服務端的真實請求物件,引用common。
remotingclient是remoting客戶端,引用common(後續測試引用commonii)。
payserver**:
static
void main(string args)
remotingclient
**:static
void main(string args)
;string value = service.getpayaccount(info);
console.writeline(value);
console.readkey();
}當客戶端少account欄位時,服務端正常收到請求,account的值為0,當客戶端的consumerinfo物件裡少consumername時,服務端正常收到請求,consumername的值為null。
當客戶端多otherint,otherstr時,服務端正常收到請求,沒這兩個欄位的值。
當客戶端換引用commonii時,commonii內部類的命名空間和common一樣,並且commonii的類庫生成也為common.dll,服務端正常接受請求,正常處理。
。。。的錯誤,通過網路搜尋,沒有找到合適解決方案。
/files/lawson/remotingobjecttests2011.12.10.rar
Redis客戶端和伺服器
一 redis客戶端 redisserver結構中儲存了所有客戶端的狀態資訊。struct redisserver 命令client list可以列出目前所有連線到伺服器的客戶端。命令client setname name 可以給客戶端設定乙個名字。偽客戶端 由於伺服器必須接收來自客戶端的命令以執行...
Redis 客戶端和伺服器
客戶端的資料結構 typedef struct redisclient redisclient 名字 name 標誌值 flags 指向客戶端正在使用的資料庫的指標,以及該資料庫的號碼 當前要執行的命令 命令的引數 命令的個數,以及指向命令實現函式的指標 輸入緩衝區 querybuf 輸出緩衝區 複...
C 客戶端和伺服器端
1 c s 客戶端應用程式 winform wpf 平級 資料是存放在其他的電腦上或伺服器上 資料的加工是在使用者的電腦上執行的,會對使用者的電腦配置有所要求 2 b s 網頁端應用程式 asp.net 統稱 asp.net webform asp.net mvc 平級 使用者傳送乙個請求到iis伺...