2011-10-25 21 views
7

Ho un progetto di servizio web con diversi servizi web. Due di questi servizi web condividono un enum che è definito in una classe BL, in questo modo:Condividi un enum tra ASMX Web Services

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

Questo è solo un esempio.

Entrambi i servizi web, quando fa riferimento in un progetto web, generare un diverso EmployeeType proxy enum, quindi ho bisogno di lanciare in modo esplicito per invocare il metodo ProcessPayment in 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); 
} 

Capisco .NET deve fai questo per creare il WSDL, ma non posso in qualche modo fare in modo che entrambi i servizi si riferiscano allo stesso enum sulle classi del proxy senza rompere nulla?

+0

Si sta utilizzando WCF o ASP.NET? –

+0

Sto usando ASP.NET. – Meryovi

risposta

0

Se si espone lo stesso enum, le deleghe funziona bene:

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

Espongo lo stesso enum, definito in una libreria comune. – Meryovi