2012-11-05 11 views
5

वीएस 2010 में विधियों को कैसे चिह्नित कर सकता हूं मैं एक सेवा संदर्भ बना रहा हूं जो कोड डब्ल्यूसीएफ क्लाइंट प्रॉक्सी क्लास Refernce.cs उत्पन्न करता है। वर्चुअल संशोधक के लिए मुझे इस कक्षा में विधियों की आवश्यकता है ताकि उन्हें मॉक में उपयोग किया जा सके।मैं डब्ल्यूसीएफ क्लाइंट प्रॉक्सी जेनरेट क्लास में वर्चुअल

बेशक मैं जेनरेट कोड संपादित कर सकता हूं, लेकिन हर बार जब मैं संदर्भ अद्यतन करता हूं तो कोड पुन: उत्पन्न होने जा रहा है और मेरे परिवर्तनों को मिटा देगा।

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

उत्तर

8

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

उदाहरण के लिए, अपने उत्पन्न वर्ग हो सकता है:

public partial class SomeService 
{ 
    public string GetSomething() 
    { 
     return ... 
    } 
} 

आप इसके लिए इंटरफ़ेस बना सकते हैं:

public interface ISomeService 
{ 
    string GetSomething(); 
} 

और फिर उत्पन्न वर्ग के लिए एक खाली आंशिक फ़ाइल जोड़ें:

public partial class SomeService : ISomeService 
{ 
} 
संबंधित मुद्दे

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