From: Ra Carter on
I want to serialize and deserialize an object to and from JSON. My
code looks something like this:

http://pastebin.com/yB5idwNq

This gives me an error like this:

System.Runtime.Serialization.SerializationException: Type 'MyObject1'
with data contract name 'MyObject1:http://schemas.datacontract.org/
2004/07/namespace' is not expected. Add any types not known statically
to the list of known types - for example, by using the
KnownTypeAttribute attribute or by adding them to the list of known
types passed to DataContractSerializer.

I am only using ISerializable because [Serializable] [DataContract]
would not work of course. The main problem I think I am having is that
I have declared my return type as an interface.

I don't want to change my objects and it is actually important that I
return the interface and not the implementation for various reasons.
What can be done? if Serializable or DataContract attributes won't
work automatically, can I pull this off manually using Serializable?
From: sloan on
http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/6b70e9f4-52bc-4fa9-a0ff-c0859e041e85
http://blogs.msdn.com/sowmy/archive/2006/06/06/all-about-knowntypes.aspx

Please post your solution after you figure out, so others can learn from it.





"Ra Carter" <spacemonkeyiv(a)gmail.com> wrote in message
news:172f43fb-c4e1-47b6-b433-47600b46525b(a)k17g2000yqb.googlegroups.com...
>I want to serialize and deserialize an object to and from JSON. My
> code looks something like this:
>
> http://pastebin.com/yB5idwNq
>
> This gives me an error like this:
>
> System.Runtime.Serialization.SerializationException: Type 'MyObject1'
> with data contract name 'MyObject1:http://schemas.datacontract.org/
> 2004/07/namespace' is not expected. Add any types not known statically
> to the list of known types - for example, by using the
> KnownTypeAttribute attribute or by adding them to the list of known
> types passed to DataContractSerializer.
>
> I am only using ISerializable because [Serializable] [DataContract]
> would not work of course. The main problem I think I am having is that
> I have declared my return type as an interface.
>
> I don't want to change my objects and it is actually important that I
> return the interface and not the implementation for various reasons.
> What can be done? if Serializable or DataContract attributes won't
> work automatically, can I pull this off manually using Serializable?