MH/T4029.3是民航業用來規定飛行計劃相關資料互動的規范,今天我們先來決議下其中I類的IFPL報文.
我們先來看看IFPL報文長啥樣.
ZCZC
-TITLE IFPL
-FILTIM 010909
-IFPLID 201332005
-SOURCE AIRNET:ZUCK
-ARCID CSN6435
-ADEP ZBAA
-ADES ZUUU
-EOBD 20130301
-EOBT 0850
-SSRCODE A1270
NNNN
其中ZCZC是報文的開頭標記,NNNN是報文的結束標記,沒有實際意義
反序列化
- 下面我們根據報文創建我們的物件,忽略報頭和報尾
class IFPL
{
public string TITLE { get; set; }
public string FILTIM { get; set; }
public string IFPLID { get; set; }
public string SOURCE { get; set; }
public string ARCID { get; set; }
public string ADEP { get; set; }
public string ADES { get; set; }
public string EOBD { get; set; }
public string EOBT { get; set; }
public string SSRCODE { get; set; }
}
- 下面我們安裝下MH/T4029.3報文決議工具,程式包控制臺輸入命令:
Install-Package Extensioner.MHT40293 -Version 1.0.0 - 反序列化報文
var message = @"ZCZC
-TITLE IFPL
-FILTIM 010909
-IFPLID 201332005
-SOURCE AIRNET:ZUCK
-ARCID CSN6435
-ADEP ZBAA
-ADES ZUUU
-EOBD 20130301
-EOBT 0850
-SSRCODE A1270
NNNN";
var model = MessageConvert.DeserializeObject<IFPL>(message);
Console.ReadKey();
反序列化后的物件如下圖:

是不是很簡單?
序列化
反過來我們有時候需要把物件轉換為MH/T4029.3報文,怎么辦呢?也很簡單!類別庫已經幫我們封裝好了方法,我們直接呼叫即可.
我們把上面的model序列化然后列印一下
var value = https://www.cnblogs.com/extensioner/archive/2021/12/20/MessageConvert.SerializeObject(model);
Console.WriteLine(value);
序列化后的報文入下圖:

So easy!
完整代碼如下:
點擊查看代碼
using Extensioner.MHT40293;
using System;
namespace MHT40293.IFPLTest
{
class Program
{
static void Main(string[] args)
{
var message = @"ZCZC
-TITLE IFPL
-FILTIM 010909
-IFPLID 201332005
-SOURCE AIRNET:ZUCK
-ARCID CSN6435
-ADEP ZBAA
-ADES ZUUU
-EOBD 20130301
-EOBT 0850
-SSRCODE A1270
NNNN";
var model = MessageConvert.DeserializeObject<IFPL>(message);
var value = https://www.cnblogs.com/extensioner/archive/2021/12/20/MessageConvert.SerializeObject(model);
Console.WriteLine(value);
Console.ReadKey();
}
}
class IFPL
{
public string TITLE { get; set; }
public string FILTIM { get; set; }
public string IFPLID { get; set; }
public string SOURCE { get; set; }
public string ARCID { get; set; }
public string ADEP { get; set; }
public string ADES { get; set; }
public string EOBD { get; set; }
public string EOBT { get; set; }
public string SSRCODE { get; set; }
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/387666.html
標籤:.NET技术
