1TB×2のRAID1にて運用していたTeraStationの片方のHDDが壊れてしまったため、
4TB×2のHDD入れ替えを検討。
HDDを両方とも入れ替えたところ、EMモードとなってしまった。
Web管理画面にもアクセスできず、ファームアップデートを試みたものの、
パーティション情報が無いと言われてアップデートできずに試行錯誤。
アップデータに含まれるTSUpdater.iniというファイルの
VersionCheck, NoFormattingを0にしたところ、
アップデートをすることが出来た。
パーティション情報が無いと言われるのは当然としても、
アップデートが出来ないのは納得できない。
それよりも、上記書き換えについて、分りやすく書いていてほしかった。
(正規のやり方ではないかもしれないが。)
2015年3月24日火曜日
2015年3月12日木曜日
【C#】XmlSerializerではsetアクセサーが呼ばれない
Dictionary<string, string>を保持したクラスにて、
インスタンス丸ごとシリアライズ・デシリアライズを行うため、
以下のようなプロパティを作成して実行した。
public List<KeyAndValue<string, string>> Parameters
{
set { Dictionary = ListToDictionary(value); }
get { return DictionaryToList(value); }
}
シリアライズは問題なく行われたものの、
デシリアライズ後のDictionaryは空のまま。
シリアライズ時はget、デシリアライズ時はsetを行うのではという想定で、
setアクセサにブレークを張るものの引っかからない。
試しにgetアクセサにてブレークを張ったところ、
予想外に引っかかった。
なぜ?と言うことで調べて見たところ、
以下の記事が見つかった。
http://goo.gl/W94Md0
原因判明。
インスタンス丸ごとシリアライズ・デシリアライズを行うため、
以下のようなプロパティを作成して実行した。
public List<KeyAndValue<string, string>> Parameters
{
set { Dictionary = ListToDictionary(value); }
get { return DictionaryToList(value); }
}
シリアライズは問題なく行われたものの、
デシリアライズ後のDictionaryは空のまま。
シリアライズ時はget、デシリアライズ時はsetを行うのではという想定で、
setアクセサにブレークを張るものの引っかからない。
試しにgetアクセサにてブレークを張ったところ、
予想外に引っかかった。
なぜ?と言うことで調べて見たところ、
以下の記事が見つかった。
http://goo.gl/W94Md0
XmlSerializer
does not call the setter for a collection.
Instead is calls the getter, and then adds items to the collection returned.
setアクセサを呼ばずに、getアクセサで取得したコレクションに対してアイテムを追加すると。原因判明。
登録:
投稿 (Atom)