Advertisement
Guest User

Untitled

a guest
Nov 19th, 2012
814
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.94 KB | None | 0 0
  1. public class ReferencePreservingDataContractFormatAttribute : Attribute, IOperationBehavior
  2.     {
  3.        
  4.         public void AddBindingParameters(OperationDescription description, BindingParameterCollection parameters)
  5.         {
  6.         }
  7.  
  8.         public void ApplyClientBehavior(OperationDescription description, System.ServiceModel.Dispatcher.ClientOperation proxy)
  9.         {
  10.             IOperationBehavior innerBehavior = new ReferencePreservingDataContractSerializerOperationBehavior(description);
  11.             innerBehavior.ApplyClientBehavior(description, proxy);
  12.         }
  13.  
  14.         public void ApplyDispatchBehavior(OperationDescription description, System.ServiceModel.Dispatcher.DispatchOperation dispatch)
  15.         {
  16.             IOperationBehavior innerBehavior = new ReferencePreservingDataContractSerializerOperationBehavior(description);
  17.             innerBehavior.ApplyDispatchBehavior(description, dispatch);
  18.         }
  19.  
  20.         public void Validate(OperationDescription description)
  21.         {
  22.         }
  23.  
  24.        
  25.     }
  26.  
  27.  
  28.  
  29.  
  30. public class ReferencePreservingDataContractSerializerOperationBehavior : DataContractSerializerOperationBehavior
  31.     {
  32.         public ReferencePreservingDataContractSerializerOperationBehavior(OperationDescription operationDescription) : base(operationDescription) { }
  33.         public override XmlObjectSerializer CreateSerializer(Type type, string name, string ns, IList<Type> knownTypes)
  34.         {
  35.             return CreateDataContractSerializer(type, name, ns, knownTypes);
  36.         }
  37.  
  38.         private static XmlObjectSerializer CreateDataContractSerializer(Type type, string name, string ns, IList<Type> knownTypes)
  39.         {
  40.             return CreateDataContractSerializer(type, name, ns, knownTypes);
  41.         }
  42.  
  43.         public override XmlObjectSerializer CreateSerializer(Type type, XmlDictionaryString name, XmlDictionaryString ns, IList<Type> knownTypes)
  44.         {
  45.             return new DataContractSerializer(type, name, ns, knownTypes,
  46.                 0x7FFF /*maxItemsInObjectGraph*/,
  47.                 false/*ignoreExtensionDataObject*/,
  48.                 true/*preserveObjectReferences*/,
  49.                 null/*dataContractSurrogate*/);
  50.         }
  51.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement