2015-04-21 18:27:52 +00:00
|
|
|
|
|
|
|
|
|
#if FEAT_SERVICEMODEL && PLAT_XMLSERIALIZER
|
2014-07-08 12:58:53 +00:00
|
|
|
|
using System;
|
|
|
|
|
using System.ServiceModel.Description;
|
|
|
|
|
using System.ServiceModel.Dispatcher;
|
|
|
|
|
|
|
|
|
|
namespace ProtoBuf.ServiceModel
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Uses protocol buffer serialization on the specified operation; note that this
|
|
|
|
|
/// must be enabled on both the client and server.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
|
|
|
|
|
public sealed class ProtoBehaviorAttribute : Attribute, IOperationBehavior
|
|
|
|
|
{
|
|
|
|
|
void IOperationBehavior.AddBindingParameters(OperationDescription operationDescription, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
|
|
|
|
|
{ }
|
|
|
|
|
|
|
|
|
|
void IOperationBehavior.ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation)
|
|
|
|
|
{
|
|
|
|
|
IOperationBehavior innerBehavior = new ProtoOperationBehavior(operationDescription);
|
|
|
|
|
innerBehavior.ApplyClientBehavior(operationDescription, clientOperation);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void IOperationBehavior.ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation)
|
|
|
|
|
{
|
|
|
|
|
IOperationBehavior innerBehavior = new ProtoOperationBehavior(operationDescription);
|
|
|
|
|
innerBehavior.ApplyDispatchBehavior(operationDescription, dispatchOperation);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void IOperationBehavior.Validate(OperationDescription operationDescription)
|
|
|
|
|
{ }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|