#眉標=WCF
#副標=WCF系列(2)
#大標=撰寫基本的WCF程式
#作者=文/李毅騁
==<程式1>===========
using System.ServiceModel;
[ServiceContract]
public interface IMathService
{
[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);
}
==<程式1 end>==============
==<程式2>===========
[ServiceContract]
public class MathService
{
[OperationContract]
public double Add(double n1, double n2)
{ return n1 + n2; }
[OperationContract]
public double Subtract(double n1, double n2)
{ return n1 - n2; }
[OperationContract]
public double Multiply(double n1, double n2)
{ return n1 * n2; }
[OperationContract]
public double Divide(double n1, double n2)
{ return n1 / n2; }
}
==<程式2 end>==============
==<程式3 box>===========
using System;
using System.Runtime.Serialization;
[DataContract]
public class Employee
{
[DataMember]
internal string Name;
[DataMember]
private int Age;
private string TelephoneNumber;
[DataMember]
public string TelephoneNumber
{
get { return TelephoneNumber; }
set { TelephoneNumber = value; }
}
}
==<程式3 end>==============
==<程式4>===========
[OperationContractAttribute]
public double Add(double n1, double n2)
==<程式4 end>==============
==<程式5>============
[ServiceContract]
interface IMathService
{
[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);
}
class MathService : IMathService
{
public double Add (double A, double B) { return A + B; }
public double Subtract (double A, double B) { return A - B; }
public double Multiply (double A, double B) { return A * B; }
public double Divide (double A, double B) { return A / B;}
}
==<程式5 end>==============
==<程式6 box>===========
==<程式6 end>==============
==<程式7 box>===========
==<程式7 end>==============
==<程式8 box>===========
using System;
using System.Configuration;
using System.ServiceModel;
namespace Microsoft.ServiceModel
{
[ServiceContract(Namespace="http://Microsoft.ServiceModel")]
public interface IMathService
{
[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);
}
public class MathService : IMathService
{
public double Add(double n1, double n2)
{
Console.WriteLine("Received Add({0},{1})", n1, n2);
return n1 + n2;
}
public double Subtract(double n1, double n2)
{
Console.WriteLine("Received Subtract({0},{1})", n1, n2);
return n1 - n2;
}
public double Multiply(double n1, double n2)
{
Console.WriteLine("Received Multiply({0},{1})", n1, n2);
return n1 * n2;
}
public double Divide(double n1, double n2)
{
Console.WriteLine("Received Divide({0},{1})", n1, n2);
return n1 / n2;
}
public static void Main()
{
ServiceHost serviceHost = new ServiceHost(typeof(MathService));
serviceHost.Open();
Console.WriteLine("服務已啟動.");
Console.WriteLine("按下Enter鍵結束服務.");
Console.ReadLine();
serviceHost.Close();
}
}
}
==<程式8 end>==============
==<程式9 box>===========
==<程式9 end>==============