private static void InjectSerializer(OperationDescription description, RegisterNamespacePrefixAttribute[] attributes)
        {
            PrefixContractSerializerOperationBehavior padcsOperationBehavior =
                description.Behaviors.Find<PrefixContractSerializerOperationBehavior>();

            if (padcsOperationBehavior == null)
            {
                DataContractSerializerOperationBehavior dcsOperationBehavior =
                    description.Behaviors.Find<DataContractSerializerOperationBehavior>();

                if (dcsOperationBehavior != null)
                {
                    description.Behaviors.Remove(dcsOperationBehavior);

                    padcsOperationBehavior = new PrefixContractSerializerOperationBehavior(description, attributes);
                    padcsOperationBehavior.MaxItemsInObjectGraph = int.MaxValue;
                    
                    description.Behaviors.Add(padcsOperationBehavior);
                }
            }            
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="PrefixContractSerializerOperationBehavior"/> class.
 /// </summary>
 /// <param name="operationDescription">The operation description.</param>
 /// <param name="attributes">The attributes.</param>
 public PrefixContractSerializerOperationBehavior(OperationDescription operationDescription, RegisterNamespacePrefixAttribute[] attributes)
     : base(operationDescription)
 {
     prefixAttributes = attributes;            
 }