2016-07-11 6 views
0

WCFではこれは法的ですか?WCF 1つのサービスに対する複数のOperationContracts

私は1つのsvcファイルで2つのサービスを行いたいと思います。クライアントでエンドポイントを設定するにはどうすればよいですか?

私のSVCファイルで次に
[ServiceContract] 
public interface IAuditLog 
{ 
    [OperationContract] 
    bool Log(int AuditTypeID, string UserName, string ImpersonatingForUserName, string Action); 

    [OperationContract] 
    string PageLog(int PageActionID, string UserName, string ItemName, string Value, string Operation); 
} 

public class AuditLog : IAuditLog 
{ 
    public bool Log(int AuditTypeID, string UserName, string ImpersonatingForUserName, string Action) 
    { 
     ..... 
    } 

    public string PageLog(int PageActionID, string UserName, string ItemName, string Value, string Operation) 
    { 
     ..... 
    } 
} 

答えて

1

はい、あなたはservice contractごとに複数のOperationContractsを持つことができます。

サービスは、いくつかの操作を公開します。 Windows通信 財団(WCF)アプリケーションでMSDNから

- 契約およびインタフェースの実装を定義するインタフェースを持つ例。

// IService1.cs 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Runtime.Serialization; 
using System.ServiceModel; 
using System.Text; 

namespace GettingStartedLib 
{ 
     [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")] 
     public interface ICalculator 
     { 
      [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); 
     } 
} 

// Service1.cs 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Runtime.Serialization; 
using System.ServiceModel; 
using System.Text; 

namespace GettingStartedLib 
{ 
    public class CalculatorService : ICalculator 
    { 
     public double Add(double n1, double n2) 
     { 
      double result = n1 + n2; 
      Console.WriteLine("Received Add({0},{1})", n1, n2); 
      // Code added to write output to the console window. 
      Console.WriteLine("Return: {0}", result); 
      return result; 
     } 

     public double Subtract(double n1, double n2) 
     { 
      double result = n1 - n2; 
      Console.WriteLine("Received Subtract({0},{1})", n1, n2); 
      Console.WriteLine("Return: {0}", result); 
      return result; 
     } 

     public double Multiply(double n1, double n2) 
     { 
      double result = n1 * n2; 
      Console.WriteLine("Received Multiply({0},{1})", n1, n2); 
      Console.WriteLine("Return: {0}", result); 
      return result; 
     } 

     public double Divide(double n1, double n2) 
     { 
      double result = n1/n2; 
      Console.WriteLine("Received Divide({0},{1})", n1, n2); 
      Console.WriteLine("Return: {0}", result); 
      return result; 
     } 
    } 
} 
関連する問題