#眉標=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>==============