あなたが解決しようとしている問題は、すでにSystem.Configuration名前空間で解決されていると思いますか?
私はジョンRistaによってコードプロジェクトにthis articleを考えるには、コンフィギュレーション・クラスを使用すると、あなたが探しているものを達成役立つはずどのように偉大な概要を説明します。それはあなたがあなたがあなたのconfigクラスを含むアセンブリを作成できるようになりますあなたのプロジェクトのために、シリアル化アセンブリを行うことを検討することをお勧めします必要が正確に何でないなら
。
コンパイル時にデシリアライザとシリアライザのクラスを作成しなかったときに、デシリアライズとシリアライゼーションの問題が発生しました。時間の経過とともに、実行時に作成されるXmlSerializationクラスが常に作成されたり使用可能であるとは限りません。エラーが発生します。
これを行う最も簡単な方法は、新しいアセンブリプロジェクトを作成し、公共の読み取り/書き込みプロパティでシリアライズ()クラスを追加することです。そして、あなたがそうのようなイベントを構築するポストにシリアライザアセンブリを作成するためにSGENを使用することができます...
SGEN/A:$(TargetFileName)/力/
をVERBOSE次に、あなたのSerializableのアセンブリを参照する必要がありますAssemblyName.Serializable.Serializersがビンまたはプロービングパスで使用可能である限り、実行時に動的アセンブリが作成されず、エラーが発生することはありません。
これが完了すると、シリアライゼーションアセンブリに含まれている型をシリアル化およびデシリアライズできます。
シリアライズ....
IsolatedStorageFile isolatedStorage = IsolatedStorageFile.GetUserStoreForAssembly();
using (IsolatedStorageFileStream stream = new
IsolatedStorageFileStream(key, FileMode.Create, isolatedStorage))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
serializer.Serialize(stream, value);
}
デシリアライズ
using (IsolatedStorageFile isolatedStorage =
IsolatedStorageFile.GetUserStoreForAssembly())
{
using (IsolatedStorageFileStream stream =
new IsolatedStorageFileStream(
key, FileMode.OpenOrCreate, FileAccess.ReadWrite, isolatedStorage))
{
if (stream.Length > 0)
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
return (T)serializer.Deserialize(stream);
}
else
{
return default(T);
}
}
}
おかげで、私は何を意味するかではないthatsの。私がしたいのは、C#クラスにdeSerializeを行うことですが、単にConfigのコレクションを持つ代わりに、何らかの形で要素のname属性も取得する必要があります。 –
恐らくこれが役に立ちます http://stackoverflow.com/questions/1081325/c-how-to-xml-deserialize-object-itself もう一度、正しく実行したい場合は、スキーマを使用してください。 – Sorantis