91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現Remoting序列化及租約

發布時間:2021-12-27 09:25:59 來源:億速云 閱讀:110 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關如何實現Remoting序列化及租約,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

先談談Remoting序列化的問題:首先,Remoting序列化是為了方便網絡傳輸,把遠程對象轉化為網絡可傳輸的形式。Remoting序列化可以實現多種形式:序列化為xml、序列化為二進制等等。當然使用序列化需要添加一個標記【Serializable】,而且可以用SerializableAttribute,或是實現ISerializable接口。下面放個序列化的代碼Demo:



   1:  [Serializable]
2:      public class SumOf
3:      {
4:          public SumOf()
5:          {
6:          }
7:   
8:          public DecimalList Members = new DecimalList();
9:   
10:          public decimal Sum,Avg;
11:   
12:          public void Calculate()
13:          {
14:              this.Sum = 0;
15:              foreach (decimal m in Members)
16:              {
17:                  Sum += m;
18:              }
19:              this.Avg = Sum / Members.Count;
20:   
21:          }
22:   
23:      }
24:      [Serializable]
25:      public class DecimalList : List<decimal>
26:      {
27:      }



接下來,來說說租約的問題,租約包含三個方面:對象的生命周期、什么是租約、續約。

1.對象的生命周期

我們先來認識一下什么是對象,對象就是內存里的數據結構。先說客戶機檢測服務器是否可用,那我們就要驗證遠程對象是否還存在。這個很簡單,我們只要調用遠程對象,如果遠程對象不可用,會出現異常,那說明服務器不可用。接著說服務器檢測客戶機是否可用,使用垃圾回收機制驗證,只對Singleton對象和客戶端激活對象有效。

2.什么是租約

租約是在服務器記錄的一個時間,如果超過這個時間,對象會被回收。

3、續約:為了讓對象繼續存在就必須使用續約

(1)隱式續約:每次調用遠程對象上的方法的時候自動進行。

(2)顯示續約:使用ILease.Renew()方法實現。

(3)發起租約:租約管理者自動續約。ILease.Register()

租約的配置:InitialLeaseTime 租約時間,默認值 300 。RenewOnCallTime檢查時間 默認值120 。SponsorshipTimeout過期時間 默認值120。LeaseManagerPollTime租約管理者臨行時間 默認值10

如何顯示租約信息:



   1:  ILease lease = (ILease)obj.GetLifetimeService();
2:              
3:              if (lease != null)
4:              {
5:                  Console.WriteLine("Lease Configuration:");
6:                  Console.WriteLine("InitialLeaseTime: " +
7:                      lease.InitialLeaseTime);
8:                  Console.WriteLine("RenewOnCallTime: " +
9:                      lease.RenewOnCallTime);
10:                  Console.WriteLine("SponsorshipTimeout: " +
11:                      lease.SponsorshipTimeout);
12:                  Console.WriteLine(lease.CurrentLeaseTime);
13:              }



如何配置租約信息:

1代碼方式



   1:  public override Object InitializeLifetimeService()
2:          {
3:   
4:              ILease lease = (ILease)base.InitializeLifetimeService();
5:              // Normally, the initial lease time would be much longer.
6:              // It is shortened here for demonstration purposes.
7:              if (lease.CurrentState == LeaseState.Initial)
8:              {
9:                  lease.InitialLeaseTime = TimeSpan.FromSeconds(3);
10:                  lease.SponsorshipTimeout = TimeSpan.FromSeconds(10);
11:                  lease.RenewOnCallTime = TimeSpan.FromSeconds(2);
12:              }
13:              return lease;
14:          }
2配置文件方式

關于“如何實現Remoting序列化及租約”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

秭归县| 合作市| 临桂县| 嘉禾县| 贡山| 万山特区| 林州市| 泰来县| 博客| 崇义县| 胶州市| 宁化县| 搜索| 临清市| 松潘县| 松溪县| 彭泽县| 通许县| 隆化县| 榆树市| 泸溪县| 永仁县| 库车县| 墨玉县| 平山县| 甘肃省| 密云县| 油尖旺区| 大荔县| 广南县| 清新县| 寻乌县| 霍城县| 伊宁县| 潢川县| 龙井市| 河间市| 阳山县| 皮山县| 江源县| 资源县|