[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="TreeTraversalType", Namespace="http://schemas.datacontract.org/2004/07/DsLib")]
public enum TreeTraversalType : int
{
[System.Runtime.Serialization.EnumMemberAttribute()]
PreOrder = 0,
[System.Runtime.Serialization.EnumMemberAttribute()]
InOrder = 1,
[System.Runtime.Serialization.EnumMemberAttribute()]
PostOrder = 2,
}
from service exposing following contract
[OperationContract]
void PrintTraversePath(TreeTraversalType type);
But at client side, it says that Serialization
does not contain DataContractAttribute
.
Also, earlier while compiling the service, I got a CLS-non-compliant error for this enum, but later without any related modification, it resolved (must have modified something else which I don't know correlates with this).
My question is, why this compile-error behaviour and what is CLS-compliance. Can't I have enum type in a Contract
definition of a service?
Enums work fine in contracts. Do you have a reference to System.Runtime.Serialization.dll (where DataContractAttribute is defined) in your project?