/// <summary> /// Initializes a new instance of the <see cref="OperationSerializer"/> class. /// </summary> /// <param name="payloadMetadataParameterInterpreter">The metadata query option interpreter </param> /// <param name="metadataPropertyManager">The metadata property manager.</param> /// <param name="advertiseServiceAction">The callback to use for determining whether an action should be advertised. Should wrap a call to IDataServiceActionProvider.AdvertiseServiceAction.</param> /// <param name="namespaceName">Namespace of the operation.</param> /// <param name="format">The current format being serialized into.</param> /// <param name="metadataUri">The metadata uri of the service.</param> internal OperationSerializer( PayloadMetadataParameterInterpreter payloadMetadataParameterInterpreter, PayloadMetadataPropertyManager metadataPropertyManager, AdvertiseServiceActionCallback advertiseServiceAction, string namespaceName, ODataFormat format, Uri metadataUri) { Debug.Assert(metadataPropertyManager != null, "metadataPropertyManager != null"); Debug.Assert(payloadMetadataParameterInterpreter != null, "payloadMetadataParameterInterpreter != null"); Debug.Assert(advertiseServiceAction != null, "advertiseServiceAction != null"); this.payloadMetadataParameterInterpreter = payloadMetadataParameterInterpreter; this.metadataPropertyManager = metadataPropertyManager; this.operationLinkBuilder = new OperationLinkBuilder(namespaceName, metadataUri); this.format = format; this.metadataUri = metadataUri; this.advertiseServiceAction = advertiseServiceAction; }
private static OperationSerializer CreateOperationSerializer(AdvertiseServiceActionCallback advertiseServiceActionCallback) { var parameterInterpreter = new PayloadMetadataParameterInterpreter(ODataFormat.Json, "full"); var propertyManager = new PayloadMetadataPropertyManager(parameterInterpreter); return new OperationSerializer(parameterInterpreter, propertyManager, advertiseServiceActionCallback, "MyContainer", ODataFormat.Json, new Uri("http://odata.org/Service.svc/$metadata")); }