Remoting客戶端和伺服器段物件不一致的測試

2022-02-24 12:44:39 字數 1259 閱讀 4592

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伺...