2011-10-25 7 views
7

私はいくつかのWebサービスを持つWebサービスプロジェクトを持っています。このWebサービスの二つはそうのように、BLクラスで定義されている列挙型を共有:ASMX Webサービス間で列挙を共有する

public class HumanResourcesService 
{ 
    public SomeLibrary.Employee GetEmployee(int employeeCode) 
    { 
     var employee = new SomeLibrary.Employee(); 
     employee.Type= SomeLibrary.EmployeeType.SomeType; 
     return employee ; 
    } 
} 

public class BankService 
{ 
    public bool ProcessPayment(int employeeCode, EmployeeType employeeType) 
    { 
     bool processed = false; 
     // Boring code 
     return processed; 
    } 
} 

これは一例です。

両方のWebサービスは、Webプロジェクトで参照、異なるEmployeeType列挙型プロキシを生成するので、私はBankServiceProcessPaymentメソッドを呼び出すために明示的にキャストする必要があります。

public void SomeMethod(int employeeCode) 
{ 
    var hrService = new HumanResourcesService(); 
    var employee = hrService.GetEmployee(employeeCode); 

    var bankService = new BankService(); 
    bankService.ProcessPayment(employee.Code, (MyProject.BankService.EmployeeType) employee.Type); 
} 

私は.NETがしなければなら理解WSDLを作成するためにこれを行いますが、何とか両方のサービスを何もせずにプロキシクラスの同じ列挙型を参照させることはできませんか?

+0

WCFまたはASP.NETを使用していますか? –

+0

私はASP.NETを使用しています。 – Meryovi

答えて

0

あなたは同じ列挙型を公開する場合、プロキシは正常に動作します:

public class BankService 
{ 
    public bool ProcessPayment(int employeeCode, MyProject.BankService.EmployeeType employeeType) 
    { 
     bool processed = false; 
     // Boring code 
     return processed; 
    } 
} 

public void SomeMethod(int employeeCode) 
{ 
    var hrService = new HumanResourcesService(); 
    var employee = hrService.GetEmployee(employeeCode); 

    var bankService = new BankService(); 
    bankService.ProcessPayment(employee.Code, employee.Type); 
} 
+0

共通のライブラリで定義されている同じ列挙型を公開します。 – Meryovi

関連する問題