い方は、直列化復元のXMLファイルをシェイクスピアの"マクベス"読み取りのみですか?
-
02-07-2019 - |
質問
私のクラスを使用していて設定のクラスの直列化された、XMLファイル管理者はその後の編集の設定を変更する。(設定にはもう少し複雑でのアプリです。configを可能にします。)
私が使っているのXmlSerializerクラスを直列化復元のXMLファイルにしてほしいと思いますが設定できるためのクラスもたくないその他の開発者用のクラス/組み立てできる設定/変更によります。できまリエイティブな仕事をしているのXmlSerializer。
追加詳細:このクラスは、コレクションによるFxCopのXmlSerializerクラスは、特別支援deserializing読み取り専用コレクション、がんを見つけることができずります。の正確なディテールにこのルールに違反するには:
性を返す回収すべき読み取り専用することにより、ユーザーは完全に置き換えを支援す。ることもできますの内容を変更しコレクションに関連する呼び出し方法に関するものと期待される。なお、XmlSerializerクラスは、特別支援deserializing読み取ります。のXmlSerializer概要です。
こうしたいかないのですか?
編集: 何が入った少し狂ます。私の場合、いった初期化するCollectionオブジェクトのコンストラクタとしてはそのプロパティを削除しドセッター。その後、XmlSerializableオブジェクトを実際に知っているの追加/AddRangeとindexer特性コレクションにオブジェクトです。以下に実際に!
public class MySettings
{
private Collection<MySubSettings> _subSettings;
public MySettings()
{
_subSettings = new Collection<MySubSettings>();
}
public Collection<MySubSettings> SubSettings
{
get { return _subSettings; }
}
}
解決
ただし、使用変更可能なリスト型のように、ArrayList(またはIList IIRC).
他のヒント
@Robクーパーたかは、実施の ISerializable 界面きってきているところもあるのでカスタムの制御方法クラスの列化およびdeserialzesの分野でも可能です。奥高尾にひっそりと建つ料亭。り脚がこうしたことを踏まえれば、このご希望の目標です。テレビでも展開しております。
あまりないと思います"という思いを大切にしていき、自動直列化からの読み込みます。
私の動きを実施する ISerializable タです。ることができまセット内の値はこちらから。
ただし、サブオブジェクト(されていたものとして読み取りのみ)世話をすることができますの直列化さのもとですべてだけで業務に取り組めました。
と思い、ルールFxCopは初は行く予約をしていようなもの:
public List<MyObject> Collection
{
get { return _collection; }
set { _collection = value; }
}
のではないでしょうか?ない場合は、ペーストの一部のコードで見たようです。する方法は幾つかあるが、今回は全て上記:)
@leppieの対応は実際に最も近い.このの関連するテキストのXmlSerializer書く編集の詳細については、上記:
のXmlSerializer特に処理を実装するクラスはIEnumerable ICollection.クラスを実装するIEnumerable実装する必要のある公共の追加方法を取る単一のパラメータとします。追加のメソッドのパラメータが同一の型が返されるから現在のプロパティの値から返されたGetEnumerator、このタイプの拠点。クラスを実装するICollectionなどCollectionBase)のほか、IEnumerableして公開項目の物価連動産(indexerクライアントまで、フルのC#)が整数でない公共Countプロパティの型整数です。パラメータの追加方法と同じでなければならな種類の返からのアイテムプロパティ、またはその型の拠点。授業を実装するICollection、価値に連載されているから取得されたインデックス付きアイテムプロパティではなく、呼び出しGetEnumerator.