2011-10-25 18 views
7

के बीच एक enum साझा करें मेरे पास कई वेब सेवाओं के साथ एक वेब सेवा प्रोजेक्ट है।एएसएमएक्स वेब सेवाओं

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

यह सिर्फ एक उदाहरण है: इस वेब सेवाओं के दो एक enum कि इतने की तरह, एक बीएल कक्षा में परिभाषित किया गया है सकते हैं।

दोनों वेब सेवाओं, जब एक वेब परियोजना में संदर्भित, एक अलग EmployeeType enum प्रॉक्सी उत्पन्न करते हैं, तो मैं BankService में ProcessPayment विधि आह्वान करने के लिए स्पष्ट रूप से कास्ट करने के लिए की जरूरत है:

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

मैं समझता हूँ कि नेट के लिए है डब्ल्यूएसडीएल बनाने के लिए ऐसा करें, लेकिन क्या मैं किसी भी तरह से दोनों सेवाओं को किसी भी तोड़ने के बिना प्रॉक्सी कक्षाओं पर एक ही enum का उल्लेख नहीं कर सकता?

+0

क्या आप डब्ल्यूसीएफ या एएसपी.नेट का उपयोग कर रहे हैं? –

+0

मैं एएसपी.नेट का उपयोग कर रहा हूं। – Meryovi

उत्तर

0

आप एक ही enum का पर्दाफाश, तो प्रॉक्सी ठीक काम करेगा:

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

मैं एक समान पुस्तकालय में परिभाषित एक ही enum का पर्दाफाश करता हूं। – Meryovi

संबंधित मुद्दे