日別アーカイブ: 2014年7月12日

Framework のインデクサー


C# では プロパティ名に this, C++/CLI では default を使用します。

アプリケーション設定


アプリケーション設定について

http://dobon.net/vb/dotnet/programing/applicationsettingsbase.html

配列を保存する方法を紹介します。


[global::System.Configuration.SettingsSerializeAs(System.Configuration.SettingsSerializeAs.Binary)] を追加します。


[global::System.Configuration.SettingsSerializeAs(System.Configuration.SettingsSerializeAs.Binary)] が削除される場合

Visual Studio IDE で Windows フォームアプリケーションを作成します。Settings.settings を選択して設定(string 型)を作成します。ここではsetting_1とします。C#の一例です。

[C#] 保存


System.Drawing.Color[] objects = new System.Drawing.Color[3];
objects[0] = System.Drawing.Color.Aqua;
objects[1] = System.Drawing.Color.Blue;
objects[2] = System.Drawing.Color.DarkGreen;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter fomatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.MemoryStream memorystream = new System.IO.MemoryStream();
fomatter.Serialize(memorystream, objects);
Properties.Settings.Default.setting_1 = Convert.ToBase64String(memorystream.ToArray());
memorystream.Close();

[C#] 読み出し


System.Drawing.Color[] objects;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter fomatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.MemoryStream memorystream = new System.IO.MemoryStream(Convert.FromBase64String(Properties.Settings.Default.setting_1));
objects = (System.Drawing.Color[])fomatter.Deserialize(memorystream);
memorystream.Close();

objects へはキャストを行わなくても保存できます。

このほかに System.Collections.Specialized.StringCollection で作成して、Add, AddRange メソッドで追加する方法もあります。XML シリアル化では正しく保存できない事例があることがわかりました。配列を含むクラスを作成してそのクラスを保存する方法も int型、string型などは正しく保存できますが、Color構造体、ユーザーコントロール、独自のクラスを含むものは正しく保存できませんでした。

コンポーネントストア


DISM /Online /Cleanup-Image /RestoreHealth を実行すると、0x800f0906 エラーが発生する、またはcbs.logに Failed to repair store. [HRESULT = 0x800f0906 – CBS_E_DOWNLOAD_FAILURE] が書き込まれます

%SystemRoot%\servicing\Packages\wuindex.xml に Map Package=”Package_nn_for_KBxxxxxxx~31bf3856ad364e35~amd64~~6.3.1.0 のような要素が欠落していると発生するようです。

インターネット オプション の 信頼済みサイトに https://fe2.update.microsoft.com/ を追加します。https://fe2.update.microsoft.com/ からダウンロードできない場合でも発生します。

Windows Serverの信頼済みサイトには次のアドレスが追加されています。

Windows Update は http://download.windowsupdate.com/c/msdownload/update/software/updt/2/ から更新プログラムをダウンロードすることであります。