Сериализация System.Collections.Generic.Dictionary
От: tev1973  
Дата: 11.07.06 07:36
Оценка:
При выполнении XML-сериализации класса

[Serializable]
public sealed class ConfigurationConv
{
public System.Collections.Generic.Dictionary<string, ConfigModule> itemsConf;

public ConfigurationConv(int capacityDic)
{
itemsConf = new Dictionary<string, ConfigModule>(capacityDic);
}
};

на строке кода, создающего экземпляр класса XmlSerializer генерируется исключение InvalidOperationException
При просмотре детальной информации в VS2005 для этого исключения , обнаружилась строка:

{"Cannot serialize member Crys.AudAux.ConfigurationConv.itemsConf of type System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Crys.AudAux.ConfigModule, AudAux, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], because it implements IDictionary."}

Код для сериализации:

XmlSerializer serializer = new XmlSerializer(typeof(ConfigurationConv));
StringBuilder appConf = new StringBuilder();
XmlWriter xwriter = XmlWriter.Create(appConf);
serializer.Serialize(xwriter, m_confService);
xwriter.Close();

Объявление класса ConfigModule:

[Serializable]
public sealed class ConfigModule
{
private StringBuilder NameAuditSource;

private StringBuilder DataSourceDb;
public ConfigModule()
{
NameAuditSource = new StringBuilder(String.Empty);
DataSourceDb = new StringBuilder(String.Empty);
}
}

помогите решить проблему
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.