KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am porting a .NET Framework C# class library to a Portable Class Library. One recurring problem is how to deal with classes decorated with the [Serializable] attribute, since this attribute is not part of the Portable Class Library subset. Serialization functionality in the Portable Class Library subset instead appears to be covered by DataContractAttribute . To preserve as much of functionality as possible in the Portable Class Library, is it sufficient to replace [Serializable] with the [DataContract] attribute (with the implication that all fields and properties subject to serialization would need to be decorated with [DataMember] as well)? What (if anything) will I not be able to do with this approach that I can do with [Serializable] applied? Is there a less intrusive approach? Given that [DataContract] and [DataMember] are used, I am considering to change the code along the following lines. Are there any obvious flaws with this approach? Is there any way to formulate the same thing less verbose? #if PORTABLE [DataContract] #else [Serializable] #endif public class SerializableClass : SerializableBaseClass { ... #if !PORTABLE protected SerializableClass(SerializationInfo info, StreamingContext context) : base(info, context) { } #endif ... #if PORTABLE [DataMember] #endif private Type1 _serializableField; #if PORTABLE [DataMember] #endif private Type2 SerializableProperty { get; set; } ... }
Tags (comma-separated)
Save Edits
Cancel