Hi, It looks like you've run across exactly the same problem (although the objects are different) that I encountered earlier this week. Hopefully I can help you out, or point you in the right direction at least. As the error shows, the problem happens when DataContractSerializer tries to serialize the Dictionary object. It does also point you in the right direction as to how to fix this. There are two ways (that I know of to fix this issue). The one is to apply the KnownTypeAttribute to the DataContract with the type you want the DataContractSerializer to know about, in normally it would look something like this: [KnownType(typeof(MyType))]. Sadly, in your case as you are working with generic types, you will probably have a bit more work than that by the looks of the documentation (See the MSDN page for the KnownTypeAttribute). The other way around it (the method I used), is to put the known type in your application config file. Basically what you will do is something like this (haven't tried it with your generic types, but this should point you in the right direction):
<system.runtime.serialization>
<dataContractSerializer>
<declaredTypes>
<add type = "Reporting.Contracts.Data.ReportData, Reporting.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=312e149fdc68a08f">
<knownType type = "Reporting.Contracts.Data.NewTest,Reporting.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=312e149fdc68a08f"/>
</add>
</declaredTypes>
</dataContractSerializer>
</system.runtime.serialization>
Your dictionary would go in the line <knownType type = "Reporting.Contracts.Data.NewTest,Reporting.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=312e149fdc68a08f"/> I think (not 100% sure on this though), that your List'1 would go on the line that looks like: <add type = "Reporting.Contracts.Data.ReportData, Reporting.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=312e149fdc68a08f">