.NET base type cannot be serialized by WCF
Asked Answered
T

2

6

I'm writing a WCF service and want to expose some custom configuration elements (e.g. Custom ConfigurationSection and ConnectionStringSettings) so that I can modify the service's configuration.

One of my custom configuration elements inherits from System.Configuration.ConfigurationElementCollection. When I try to start my WCF service I get the following error message...

Type 'System.Configuration.ConfigurationElementCollection' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute.

Is there a way to implement the DataContract for this Type? I have my inherited class marked with the [DataContract] attribute.

Tani answered 30/10, 2008 at 13:59 Comment(0)
I
4

Just hit this issue today. It was confusing because the problem came up moving a project from machine to machine. This article seems relevant:

http://blogs.msdn.com/youssefm/archive/2009/08/10/serializing-plain-old-clr-objects-poco-types-with-datacontractserializer.aspx

To summarize in case of link rot, the issue seems to emerge in runtime 3.5 and go away in runtime 3.5 SP1.

Idiolect answered 4/3, 2010 at 22:49 Comment(1)
I had the same. You need 3.5 SP1 for auto serializing of POCO types.Passport
T
1

Ok, well in the end I had to re-architect my solution. I found the SerializableConfigurationSection most beneficial. It's in the patterns and practices EnterpriseLibrary. So rather than trying to pass my Custom Configuration Sections through WCF, I perform the seralization/deserialization manually and pass the configuration sections through WCF as a string.

Tani answered 31/10, 2008 at 2:45 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.