Serialization - Kittyfisto/SharpRemote GitHub Wiki

This library features a built-in serializer in order to serialize / deserialize argument values, return values and exceptions being passed by the "remote" interface.

Supported Types

This serializer comes with built-in support for a lot of .NET framework types, including (but not limited to):

  • Collections
    • Array
    • List<>
    • HashSet<>
    • Stack<>
    • Queue<>
    • Dictionary<,>
    • LinkedList<>
    • SortedSet<>
    • SortedList<,>
    • SortedDictionary<,>
  • string, int, etc...
  • KeyValuePair<,>
  • Type
  • IPAddress
  • IPEndPoint
  • TimeSpan
  • DateTime
  • DateTimeOffset
  • Guid
  • Nullable<>
  • ApplicationId
  • Uri
  • Any Enum

If you think an important type is missing, feel free to open an issue about it.

Custom Types

A custom type must conform to the following rules in order to be serializable:

  • The type must be marked with the DataContractAttribute
  • Any field / property that should be serialized must be marked with the DataMemberAttribute
  • Any field / property that should be serialized must not be read-only
  • Any field / property that should be serialized must either be itself a supported custom type or be one of the natively supported types