建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

澳門新葡亰城官網app:《WCF技術內幕》翻譯22:第2部分第5章消息:XmlDictionaryWriter

?

(概述:這一部分先容了XmlDictionaryWriter類型的相關觀點:若何創建,應用一個工具,然后講述了若何進行Text、二進制和MTOM編碼。著末先容了XmlDictionary的感化【老徐備注2】,已經各類編碼的效率問題。你會懂得為WCF支持的幾種編碼款式的基濫觴基本理。)

XmlDictionaryWriter

XmlDictionaryWriter類型為Message類型的序列化和編碼的。它承襲自System.Xml.XmlWriter,是以承襲了很多XmlWriter 的屬性。像XmlWriter一樣,XmlDictionaryWriter也是抽象類型,它定義了幾個返回XmlDictionaryWriter子類型實例的措施,包裝了System.IO.Stream并且定義了許多以Write單詞開始的措施。在感化上,法度榜樣里應用 XmlDictionaryWriter和XmlWriter在觀點上十分相似。

與XmlWriter不合,XmlDictionaryWriter類型的目的是序列化和編碼Message工具,并且無意偶爾會應用XmlDictionary工具處置懲罰壓縮事情。為了這一目的,XmlDictionaryWriter 類型定義澳門新葡亰城官網app了一些與XmlWriter不合的成員。讓我們經由過程鉆研這些成員來具體懂得一下XmlDictionaryWriter類型。首先我們會反省一下 XmlDictionaryWriter的構造函數,然后看看若何經由澳門新葡亰城官網app過程Stream序列化和編碼XML數據。

創建一個XmlDictionaryWriter工具

XmlDictionaryWriter定義了幾個工廠措施,并且它們都直接或者間接地吸收System.IO.Stream工具的引用。這些措施大年夜部分是重載一下4個措施:CreateDictionaryWriter、CreateTextWriter、CreateMtomWriter和CreateBinaryWriter。

Creat澳門新葡亰城官網appeDictionaryWriterXmlDictionaryWriter 類型上的工廠措施CreateDictionaryWriter 此中之一便是吸收一個XmlWriter類型的引用。內部來說,這些措施返回的實例都是簡單地包裝了通報的參數XmlWriter。是以,這些措施用場不大年夜,除了某些API里必要XmlDictionaryWriter類型的時刻。比如,你可能要掉落澳門新葡亰城官網app也難怪一個吸收XmlDictionaryWriter類型參數的措施,然則你只有一個XmlWriter類型的局部變量。要是這樣的話,你可以經由過程調用CreateDictionaryWriter工廠措施,通報XmlWriter參數,從XmlWriter創建XmlDictionaryWriter工具,代碼如下:

MemoryStream stream = new MemoryStream();

XmlWriter xmlWriter = XmlWriter.Create(stream);

XmlDictionaryWriter writer = XmlDictionaryWriter.CreateDictionaryWriter(xmlWriter);

CreateTextWriterXmlDictionaryWriter類型定義了三個工廠措施。這些工廠措施返回的是承襲自XmlDictionaryWriter類型的實例,并且它們的感化是為了孕育發生基于文本編碼的XML。所有的三個措施都吸收Stream類型的參數。兩個措施吸收一個Stream參數和一個 System.Text.Encoding類型的參數。一個措施吸收一個Stream類型、一個Encoding和一個Boolean類型的參數。 Encoding參數,如你所期望的,設置處置懲罰Stream時刻的編碼款式。雖然有很多編碼款式,然則CreateTextWriter措施只支持三種編碼款式:UTF-8 、Unicode (UTF-16) little-endian和big-endian要領。假如不選擇的話,默認應用UTF-8編碼。Boolean參數表示 XmlDictionaryWriter是否擁有這個Stream工具。假如為true, 調用XmlDictionaryWriter上的Close 和Dispose措施,也會調用Stream工具的Close措施,是以能夠阻攔對Stream 的后續造訪。假如沒有設置的話,默覺得true.下面的代碼演示了若何應用CreateTextWriter措施:

MemoryStream stream = new MemoryStream();

using (XmlDictionaryWriter writer =

XmlDictionaryWriter.CreateTextWriter(stream, Encoding.UTF8, false)) {

writer.Wri澳門新葡亰城官網appteStartDocument();

writer.WriteElementString("SongName",

"urn:ContosoRockabilia",

"Aqualung");

writer.Flush();

}

Console.WriteLine("XmlDictionaryWriter (Text-UTF8) wrote {0} bytes",

stream.Position);

stream.Position = 0;

Byte[] bytes = stream.ToArray();

Console.WriteLine(BitConverter.ToString(bytes));

Console.WriteLine("data read from stream:\n{0}\n",

new StreamReader(stream).ReadToEnd());

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
彩票胜平负什么意思 贵州快3走势图彩票控 多乐彩 山东群英会最新走势图 千禧p3试机号 武汉麻将红中赖子杠 干什么能用手机赚钱啊 东方6+1开奖结果玩法 云南11选5中奖技巧 排球明星英语