Q:

JSON serialization DataContractSerializerOperationBehavior

I have a WCF web application (.NET Frameword 4.6.2) which have the following endpoint :
[OperationContract]
[WebGet(UriTemplate = "Products/{id}")]
public ProductDTO GetProduct(string id)
{ 
   return Services. GetProduct(id);
}

My DTO has some properties like Name, Price and also a Dictionary of custom properties. 
[DataContract­]
[Serializable]
public class ProductDTO 
{
   [DataMember(Name = "Props", IsRequired = true, EmitDefaultValue = false)]
   public IDictionary<string, string> Props {get;set;}
}

I use the default Json serializer from .net to send the response to the client side and the dictionary property is serialized that way :
{
 "Key":"propKey",
 "Value":"propValue"
}

I would like it to be without the keywords "key" and "value".  I know we can use  DataContractJsonSerializerSettings to change this setting which is UseSimpleDictionaryFormat.  My problem is how can I change this settings for the default framework behaviors for this operation or all my operation contracts?  I know I could use Json. Net to fix this use issue, but on short term I'd like to stick with DataContractJsonSerializer.  Is there a way I can override a behavior so I can set this setting? 
I tried to override the following behavior but it didn't work. 
public class DataContractJsonSerializerOperationBehavior : DataContractSerializerOperationBehavior
{
    public DataContractJsonSerializerOperationBehavior(OperationDescription operation) : base(operation) {}

    public DataContractJsonSerializerOperationBehavior(OperationDescription operation, DataContractFormatAttribute dataContractFormatAttribute) : base(operation, dataContractFormatAttribute) {}

    public override XmlObjectSerializer CreateSerializer(System. Type type, string name, string ns, IList<System. Type> knownTypes)
    {
        /* Never called */
    }

    public override XmlObjectSerializer CreateSerializer(System. Type type, XmlDictionaryString name, XmlDictionaryString ns, IList<System. Type> knownTypes)
    {
        /* Never called */
    }
}

And I also set the behavior for my endpoint:
        foreach (OperationDescription operationDescription in serviceEndpoint. Contract. Operations)
        {
            DataContractSerializerOperationBehavior dataContractBehavior = operationDescription. Behaviors[typeof(DataContractSerializerOperationBehavior)] as DataContractSerializerOperationBehavior;
            if (dataContractBehavior ! = null)
            {
                operationDescription. Behaviors. Remove(dataContractBehavior);
                operationDescription. Behaviors. Add(new DataContractJsonSerializerOperationBehavior(operationDescription));
            }
        }

A:

After spending too much time on this, I ended up changing the default serializer from DataContractSerializer to JSON.Net ... I don't think it's even possible to change the setting I was looking for with DataContractSerializer as default serializer.