Я пишу простой класс, который сериализующий мой интерфейс IConfiguration
, который имеет следующий методНевозможно сериализовать KeyValuePair с YamlDotNet
IEnumerable<KeyValuePair<string, object>> GetAllProperties();
В моем классе у меня есть метод
public void WriteConfiguration(IConfiguration data, Stream stream)
{
new Serializer().Serialize(new StreamWriter(stream), data.GetAllProperties());
}
Но Serializer
ничего не пишет в поток. Где-то я читал, что KeyValuePair
не сериализации, но это не тот случай больше сейчас (это было в .NET 2.0)
Я пытался сначала преобразовать IEnumerable
в List
(используя .ToList()
), но ничего не изменилось. Тогда я попытался создать класс, чтобы использовать вместо KeyValuePair
:
[Serializable]
private class Pair<TKey, TValue>
{
public Pair() { }
public Pair(TKey key, TValue value)
{
Key = key;
Value = value;
}
public TKey Key { get; set; }
public TValue Value { get; set; }
}
Но она по-прежнему не работает.
Кажется, работает для меня ... Я подозреваю, что это может быть потому, что вы никогда не уничтожаете StreamWriter, поэтому он никогда не краснеет. –