I was trying to explore different ways of creating a proxy to use the service. I knew 3 ways to doing it
1.using SVCUtil.exe
2.using Add Service Reference
3.using ChannelFactory<T> and DuplexChannelFactory<T> classes
As and when I explored that we could also create a proxy by using a wonderful class ClientBase<T>
As and when I explored that we could also create a proxy by using a wonderful class ClientBase<T>
Here are the steps I followed to create a Proxy using ClientBase<T>
1.Created a Sample service and Hosted in IIS
2.Copy the Service Interface to Client Code
3.Extend the ClientBase<T>
4. Create the proxy in the client and use
1.The Service Interface is as follows
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
// TODO: Add your service operations here
}
The Implementation is as follows
public class Service1 : IService1
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
}
2. I copied the Service interface to the Client Code
3. Extended the ClientBase<T> as Follow
class ServiceClient:ClientBase<IService1>,IService1
{
public ServiceClient(BasicHttpBinding binding, EndpointAddress address
):base(binding,address)
{
}
protected override IService1 CreateChannel()
{
return base.CreateChannel();
}
public string GetData(int value)
{
return base.Channel.GetData(value);
}
}
}
4.We can Invoke the custom handcoded proxy as follows
class Program
{
static void Main(string[] args)
{
ServiceClient client = new ServiceClient(new BasicHttpBinding(BasicHttpSecurityMode.None), new EndpointAddress("http://mycomputer:61468/Service1.svc"));
Console.WriteLine(client.GetData(10));
Console.ReadLine();
}
}
4 comments:
Thank You very much...it was really helpfull
nice post easy to understand
Thanks man!! Great tutorial!
Thanks man! Great tutorial!
Post a Comment