blogs.conchango.com

welcome to the conchango blogging site
Welcome to blogs.conchango.com Sign in | Join | Help
in Search

Merrick Chaffer's Blog

Passing Enum values into WCF Service operations

In order to pass Enum values around to your WCF service operations, then you must put [ServiceKnownType(typeof(Enum))] attribute on the service interface contract, and also add the [EnumMember] attribute to every enum value within your Enumeration data contract.

Service contract looks like this...

namespace MyNameSpace.ServiceContracts

{

    [ServiceContract(Namespace = "http://MyNameSpace.ServiceContracts/2007/04", Name = "IReferenceData", SessionMode = SessionMode.Allowed)]

    [ServiceKnownType(typeof(ReferenceTypeData))]

    public interface IReferenceData

    {

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "LookupReferenceData")]

        [FaultContract(typeof(Exception))]

        MyNameSpace.DataContracts.ReferenceValueCollectionData LookupReferenceData(MyNameSpace.DataContracts.ReferenceTypeData request);

    }

}

Enum looks like this...

namespace MyNameSpace.DataContracts

{

    /// <summary>

    /// Data Contract Class - ReferenceTypeData

    /// </summary>

    [DataContract(Namespace = "http://MyNameSpace.DataContracts/2007/04", Name = "ReferenceTypeData")]

    public enum ReferenceTypeData

    {

        [EnumMember()]

        Unknown = 0,

        [EnumMember()]

        Title = 1,

        [EnumMember()]

        Nationality = 2

    }

}

Published 03 April 2007 15:35 by merrick.chaffer

Comments

No Comments
Anonymous comments are disabled
Powered by Community Server (Personal Edition), by Telligent Systems