में सरल आईओसी के साथ डब्ल्यूसीएफ सेवा क्लाइंट को पंजीकृत करते समय एंडपॉइंट पता प्रदान नहीं कर सकता है मैं सहायता एमवीवीएम लाइट टूलकिट 4.1.24 के साथ एक डब्ल्यूपीएफ एप्लीकेशन विकसित कर रहा हूं। यहां मेरा व्यूमोडेल लोकेटर क्लास है।व्यूमोडेल लोकेटर
public class ViewModelLocator
{
/// <summary>
/// Initializes a new instance of the ViewModelLocator class.
/// </summary>
public ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
if (ViewModelBase.IsInDesignModeStatic)
{
// Create design time view services and models
SimpleIoc.Default.Register<IService1, DesignDataService>();
}
else
{
// Create run time view services and models
SimpleIoc.Default.Register<IService1, Service1Client>();
}
SimpleIoc.Default.Register<MainViewModel>();
}
public MainViewModel Main
{
get
{
return ServiceLocator.Current.GetInstance<MainViewModel>();
}
}
public static void Cleanup()
{
// TODO Clear the ViewModels
ServiceLocator.Current.GetInstance<MainViewModel>().Cleanup();
}
}
कहाँ
IService1 - एक WCF सेवा इंटरफ़ेस है
DesignDataService - डिजाइन उद्देश्य के लिए IService1 का कार्यान्वयन
Service1Client - WCF प्रॉक्सी वर्ग कि IService1
लागू
मैं दो प्रश्न हैं:
1) अनुप्रयोग चलाने करते हैं, मैं इस तरह "पंजीकरण नहीं कर सकता।: Service1Client में पाया एकाधिक कंस्ट्रक्टर्स लेकिन कोई भी PreferredConstructor के साथ चिह्नित" त्रुटि मिली है। इसके लिए मैंने सेवा 1 क्लाइंट डिफ़ॉल्ट कन्स्ट्रक्टर और अपेक्षित के रूप में चलाए गए एप्लिकेशन में "[पसंदीदा कॉन्स्ट्रास्ट्रक्टर एट्रिब्यूट]" विशेषता जोड़ा है। मैं जानता हूँ कि यह दो कारणों
- के लिए एक अच्छा तरीका नहीं है यह SimpleIoc
- करने के लिए एक निर्भरता जब भी मैं सेवा संदर्भ मैं मैन्युअल रूप से डिफ़ॉल्ट निर्माता को यह विशेषता जोड़ने के लिए अद्यतन परिणाम देगा।
तो क्या कोई बेहतर तरीका है?
2) मैं एंडपॉइंट पता को सर्विस 1 क्लाइंट मैन्युअल रूप से पास करना चाहता हूं। मैं उसे कैसे कर सकता हूँ?
अग्रिम धन्यवाद ...
तो आप प्रश्न को हटाएं या एक उत्तर जोड़ें – Cybermaxs