2010-03-17 9 views
6

मैं वर्तमान में डब्ल्यूसीएफ के माध्यम से कई तरीकों से एक सेवा प्रदान करता हूं। मैं रिफैक्टर करना चाहता हूं ताकि एकल सेवा को कई वर्गों में विभाजित किया जा सके, प्रत्येक कार्यक्षमता का एक अलग सेट पेश करता है। हालांकि, मैं अभी भी क्लाइंट के साथ एक कनेक्शन होना पसंद करूंगा। क्या यह संभव है?क्या एक ही एंडपॉइंट के माध्यम से एकाधिक डब्ल्यूसीएफ सेवाओं का पर्दाफाश करने का कोई तरीका है?

मुझे लगता है कि उत्तर नहीं है, तो मुझे इस मुद्दे को कैसे हल करना चाहिए? क्या आसपास कोई काम है? या मेरा विचार पूरी तरह बेवकूफ है और मुझे आवेदन के डिजाइन को बदलना चाहिए?

+0

अच्छा सवाल है, यहाँ वही समस्या - ध्यान दें thouh कि इस वर्ग लेकिन अधिक इंटरफ़ेस आधारित (सेवाओं इंटरफेस कर रहे हैं) नहीं है। – TomTom

उत्तर

4

ई = एबीसी (एंडपॉइंट = पता, बाध्यकारी, अनुबंध) याद रखें। एक अलग अनुबंध के साथ, यहां तक ​​कि सभी के बराबर के साथ, आप अभी भी एक अलग अंतराल प्राप्त कर लिया है।

हालांकि, एक सेवा कई सेवा अनुबंध लागू कर सकती है। यह एकल .svc फ़ाइल को कई अलग-अलग सेवा अनुबंधों का लक्ष्य होने की अनुमति देगा, जो सभी .svc से संबंधित URL के रूप में कॉन्फ़िगर किए गए हैं।

0

आप आंशिक कक्षा लागू कर सकते हैं जो आपको एक ही इंटरफ़ेस और एंडपॉइंट को बनाए रखने के दौरान व्यक्तिगत सामग्री फ़ाइलों में अपनी सामग्री को अलग करने की अनुमति देता है। यह सबसे आदर्श तरीका नहीं है, क्योंकि दिन के अंत में यह अभी भी आंशिक कक्षाओं से बना एक वर्ग है, लेकिन कम से कम यह आपकी फ़ाइल संरचना में दिखता है, इस प्रकार एक विशाल वर्ग फ़ाइल के बजाय कुछ अलगाव देता है ।

उदाहरण संरचना:

IMyService.cs

[ServiceContract] 
public interface IMyService 
{ 
    [OperationContract] 
    string GenericMethod() 

    [OperationContract] 
    string GetUsers(int companyId) 

    [OperationContract] 
    string GetMessages(int userId) 

} 

MyService.cs

//Put any attributes for your service in this class file 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public partial class MyService : IMyService 
{ 
    public string GenericMethod() 
    { 
    return ""; 
    } 
} 

UserService.cs

public partial class MyService 
{ 
    public string GetUsers(int companyId) 
    { 
     return ""; 
    } 
} 

MessagingService.cs

public partial class MyService 
{ 
     public string GetMessages(int userId) 
     { 
      return ""; 
     } 
} 
संबंधित मुद्दे

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