a)create a method public string GetData(inputParameters value)
b)created parameter inspector that is working fine.
c) when control goes from BeforeCall() method to GetData(inputParameters ) , inputParameters value is null in GetData method , how can i get parameter value here ? plese suggest asap.
1. created a method to intercept its parameters.
[CustomDataOperationBehavior]
[WebInvoke(Method="POST", UriTemplate = "GetData",RequestFormat=WebMessageFormat.Json ,ResponseFormat = WebMessageFormat.Json)]
[OperationContract]
string GetData(inputParameters value);
public string GetData(inputParameters value)
{
return value.Name;
}
2.
public class ParameterValidator : IParameterInspector
{
public object BeforeCall(string operationName, object[] inputs)
{
if (((IntercepterDemo.inputParameters)(inputs[0])).Name == "Test")
{
return null;
}
else
{
throw new FaultException("Fail");
}
}
public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
{
}
}
3.
public class CustomDataOperationBehavior : Attribute, IOperationBehavior
{
public void ApplyDispatchBehavior(OperationDescription operationDescription, System.ServiceModel.Dispatcher.DispatchOperation dispatchOperation)
{
dispatchOperation.ParameterInspectors.Add(new ParameterValidator());
}
public void AddBindingParameters(OperationDescription operationDescription, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
{
}
public void ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation)
{
}
public void Validate(OperationDescription operationDescription)
{
}
}
4.
[DataContract]
public class MyExceptionContainer
{
[DataMember]
public string Messsage { get; set; }
[DataMember]
public string Description { get; set; }
}