Xml [Serializable] ?

Dec 20, 2007 at 10:03 PM
Are there any plans to make the collections Xml Serializable friendly?
I've encounted this issue with the MultiDictionary object.


One of the obstacles...is the lack of default constructors. Here is one I tried to implement.

public MultiDictionary()
: this(true, EqualityComparer<TKey>.Default, EqualityComparer<TValue>.Default)
{
//I picked "true" for allow duplicates.....
}

I attempted this inclusion...and it helped.

What's getting me is the implementation of a ..Default Accessor Implementation..
I have to admit, my Generic(s) skills are average at best.

But something like this is apparently missing. Here is where I got stuck.

public Something?? thisint index
{
get
set
}

I tried a couple of different things...but either my lack of ability with generics or not discerning the concrete or base object correctly is hindering me.


Here is my test object ... which I can create...but I get the issues when I try to serialize it to Xml.


Serializable
public class PowerCollectionMultiDictionaryTestWrapperForXml
{
private string _name = string.Empty;
public string Name
{
get { return _name; }
set { _name = value; }
}

private int _age = 0;
public int Age
{
get { return _age; }
set { _age = value; }
}

Wintellect.PowerCollections.MultiDictionary<Guid, Guid> _doubleGuidMultiDictionary = new Wintellect.PowerCollections.MultiDictionary<Guid, Guid>(true);

public Wintellect.PowerCollections.MultiDictionary<Guid, Guid> DoubleGuidMultiDictionary
{
get { return _doubleGuidMultiDictionary; }
set { _doubleGuidMultiDictionary = value; }
}
}



//and code to instantiate
PowerCollectionMultiDictionaryTestWrapperForXml pct = new PowerCollectionMultiDictionaryTestWrapperForXml();
pct.Name = "Sloan";
pct.Age = 35;
pct.DoubleGuidMultiDictionary.Add(Guid.NewGuid(), Guid.NewGuid());


I'll continue to work on it..but thought I'd at least list out the issue.


Since the code is:

Serializable
public class MultiDictionary<TKey, TValue> : MultiDictionaryBase<TKey, TValue>, ICloneable
{}

The intent definately looks to be "Make it Serializable".

Thanks.