日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

在2010年之前,XML是最流行的數據交換標準,直至今天,仍然有許多系統使用XML交換數據。NewLife.Core 很早就提供了XML序列化支持,主要用于配置文件。

Nuget包:NewLife.Core

源碼地址:https://github.com/NewLifeX/X/tree/master/NewLife.Core/Serialization/Xml

基本用法

NewLife.Serialization.Xml 類主要成員如下:

/// 深度

publicInt32Depth{get;set; }

/// 處理器列表

publicListHandlers{get; }

/// 使用特性

publicBooleanUseAttribute{get;set; }

/// 使用注釋

publicBooleanUseComment{get;set; }

/// 當前名稱

publicStringCurrentName{get;set; }

// 寫入一個對象

BooleanWrite(Objectvalue,Stringname=null,Typetype=null);

// 讀取指定類型對象

ObjectRead(Typetype);

TRead();

BooleanTryRead(Typetype,refObjectvalue);

Xml配置文件

Xml至今仍然是很多系統配置文件的優(yōu)先選擇,最主要是因為它支持注釋。

先來看一個SysConfig配置類的文件內容:

它的模型類是這樣的:

/// 系統設置。提供系統名稱、版本等基本設置

[DisplayName("系統設置")]

publicclassSysConfig:XmlConfig

{

#region屬性

/// 系統名稱

[DisplayName("系統名稱")]

[Description("用于標識系統的英文名")]

publicStringName{get;set; }="";

/// 系統版本

[DisplayName("系統版本")]

publicStringVersion{get;set; }="";

/// 顯示名稱

[DisplayName("顯示名稱")]

[Description("用戶可見的名稱")]

publicStringDisplayName{get;set; }="";

/// 公司

[DisplayName("公司")]

publicStringCompany{get;set; }="";

/// 應用實例。單應用多實例部署時用于唯一標識實例節(jié)點

[DisplayName("應用實例。單應用多實例部署時用于唯一標識實例節(jié)點")]

publicInt32Instance{get;set; }

/// 開發(fā)者模式

[DisplayName("開發(fā)者模式")]

publicBooleanDevelop{get;set; }=true;

/// 啟用

[DisplayName("啟用")]

publicBooleanEnable{get;set; }=true;

/// 安裝時間

[DisplayName("安裝時間")]

publicDateTimeInstallTime{get;set; }=DateTime.Now;

#endregion

#region方法

/// 加載后觸發(fā)

protectedoverridevoidOnLoaded()

{

if(IsNew)

{

varasmx=SysAssembly;

Name=asmx?.Name??"NewLife.Cube";

Version=asmx?.Version??"0.1";

DisplayName=(asmx?.Title??asmx?.Name)??"魔方平臺";

Company=asmx?.Company??"新生命開發(fā)團隊";

//Address = "新生命開發(fā)團隊";

if(DisplayName.IsNullOrEmpty())DisplayName="系統設置";

}

// 本地實例,取IPv4地址后兩段

if(Instance

{

try

{

varip=NetHelper.MyIP();

varbuf=ip.GetAddressBytes();

Instance=(buf[2]

}

catch

{

// 異常時隨機

Instance=Rand.Next(1,1024);

}

}

base.OnLoaded();

}

/// 系統主程序集

publicstaticAssemblyXSysAssembly

{

get

{

try

{

varlist=AssemblyX.GetMyAssemblies();

// 最后編譯那一個

list=list.OrderByDescending(e=>e.Compile)

.ThenByDescending(e=>e.Name.EndsWithIgnoreCase("Web"))

.ToList();

returnlist.FirstOrDefault();

}

catch{returnnull; }

}

}

#endregion

}

配置類需要繼承 XmlConfig 基類,然后直接通過靜態(tài)屬性Current讀寫:

// 讀取

varset=SysConfig.Current;

varname=set.Name;

// 保存

set.DisplayName="星塵服務";

set.Save();

如果配置文件不存在,會自動創(chuàng)建新文件,并寫入默認值;

如果配置文件字段有增減,或者注釋內容有改變,下一次讀寫時自動覆蓋;

總結

當今最流行數據交換格式是Json,幾乎沒有新系統繼續(xù)使用Xml作為數據交換。

新的配置系統獨立實現了Xml讀寫,也不再需要這里的Xml序列化,作為兼容,只需要把基類從XmlConfig修改為Config即可。

分享到:
標簽:Xml
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰(zhàn)2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定