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<LengthType>
    {
        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.