2011-10-25 43 views
7

Tôi có một dự án dịch vụ web với một số dịch vụ web. Hai trong số các dịch vụ web này chia sẻ một enum được định nghĩa trong một lớp học BL, như vậy:Chia sẻ nội dung giữa Dịch vụ web ASMX

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; 
    } 
} 

Đây chỉ là một ví dụ.

Cả hai dịch vụ web, khi được tham chiếu trong một dự án web, tạo ra một khác nhau EmployeeType proxy enum, vì vậy tôi cần phải cast một cách rõ ràng để gọi phương pháp ProcessPayment trong BankService:

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); 
} 

Tôi hiểu NET phải làm điều này để tạo WSDL, nhưng tôi không thể bằng cách nào đó làm cho cả hai dịch vụ tham khảo cùng một enum trên các lớp proxy mà không vi phạm bất cứ điều gì?

+0

Bạn đang sử dụng WCF hoặc ASP.NET? –

+0

Tôi đang sử dụng ASP.NET. – Meryovi

Trả lời

0

Nếu bạn tiếp xúc với các enum cùng, các proxy sẽ làm việc tốt:

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

Tôi phơi bày cùng một enum, được định nghĩa trong một thư viện chung. – Meryovi

Các vấn đề liên quan