Here we take an example by which we can understand some of these.
- In Configuration File: We can define our WCF service in web.config file, here we specify a lot of things regarding the attributes and behavior of the service. And if we want to change something in the web.config file, it is not necessary to recompile this again and again.
<?xml
version="1.0"?>
<configuration>
<system.serviceModel>
<services>
<service
name="Service"
behaviorConfiguration="ServiceBehavior">
<endpoint
address=""
binding="wsHttpBinding"
contract="IService">
<identity>
<dns
value="localhost"/>
</identity>
</endpoint>
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior
name="ServiceBehavior">
<serviceMetadata
httpGetEnabled="true"/>
<serviceDebug
includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
- The Second Way of programming is if we can do this by defining the
attribute. These attribute is used to define the Contracts and it is also
used to
define the behavior of the Service.
using System.ServiceModel;
namespace Calc
{
[ServiceContract]
public interface ICalcService
{
[OperationContract]
double Add(double n1, double n2);
[OperationContract]
double Subtract(double n1, double n2);
[OperationContract]
double Multiply(double n1, double n2);
[OperationContract]
double Divide(double n1, double n2);
}
}
namespace Calc
{
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class CalcService:ICalcService
{
public double Add(double n1, double n2)
{
return n1 + n2;
}
public double Subtract(double n1, double n2)
{
return n1 - n2;
}
public double Multiply(double n1, double n2)
{
return n1 * n2;
}
public double Divide(double n1, double n2)
{
return n1 / n2;
}
}
}
3. The Third way of programming in which we will use the object model. This is more beneficial as we have an idea of object oriented programming.
static void main()
{
Uri BA=new Uri(ConfigurationManager.AppSettings["add"]);
AddressHeader AH = new AddressHeader.CreateAddressHeader("myservice1", "http://localhost:6363/service");
EndpointAddress EA = new EndpointAddress(new Uri("http://localhost:6363/myfirstservice/service"));
ServiceEndPoint SE=new ServiceEndPoint(ContractDescription.GetContract(typeof(StudentService)),new WSHttpBinding),EA);
ServiceHost SH new ServiceHost(typeof(StudentService),BA);
SH.Description.Endpoints.Add(SE);
SH.Open();
SH.Close();
}

Dhaval PatelPosted Apr 24, 2012, 2:05 AM
if is it possible to call Json through wcf service??