HeadspringLabs/Enumeration — pull request #5 by jdmgomoo (2013-05-13 16:10:53+00:00)
Title: Making the Enumeration serializable for WCF and Web Services 

...is uses Data Contracts that can serialize read-only members.

I ran into the inability to serialize a class when it used the Enumeration because the underlying type was static and the members were read only. By making it a Data Contract the base _displayName and _value could be serialized and this resolved my issue.

All usages of this would require the implementing type to be a data contract. such as:
[DataContract]
public class LengthType: Enumeration
{
public static readonly LengthType Mile = new LengthType(1, "Mile");
public static readonly LengthType Meter= new LengthType(2, "Meter");

private LengthType(int value, string displayName) : base(value, displayName) { }
}

Now the Property:

LengthType LengthType { get; set; }

could serialize from a Web Service.