मैंने नीचे दिए गए कोड में अपनी समस्या को सरल और पुन: उत्पन्न किया है। मुझे जो त्रुटि मिल रही है वह है: तर्क 1: 'System.Collections.ObjectModel.Collection' से 'System.Collections.ObjectModel.Collectionसी # इंटरफेस के संग्रह के रूप में संग्रह को पास करना
डिज़ाइन निर्णयों के लिए कुछ पृष्ठभूमि जो इस समस्या का कारण बनती हैं: मेरे पास है "आईफ्रूट" से निपटने के लिए एक वेब सेवा बनाई, लेकिन एसओएपी और एंडपॉइंट बाइंडिंग की प्रकृति के कारण मैं उन्हें समझता हूं मैंने आईफ्रूट के स्पष्ट कार्यान्वयन के साथ विधियां बनाई हैं। व्यापार परत पर, फल के प्रत्येक विशिष्ट कार्यान्वयन के लिए एक अलग विधि बनाने से पहले बहुत सारे डुप्लिकेट कोड का कारण बनता है, और दूसरी बात यह है कि वेब सेवा में नए आईफ्रूट प्रकारों को स्वीकार करने के बाद व्यापार और सेवा परत को कसकर पर्याप्त रूप से जोड़ा जाता है, इसके बाद भी मेरे कोड को बदलने की आवश्यकता होगी व्यापार परत में (अनावश्यक कोड की एक और प्रति जोड़ना)। यह डिज़ाइन वह है जिसे मैंने अतीत में जावा का सफलतापूर्वक कार्यान्वित किया है, लेकिन सी # इंटरफेस मुझे फेंकने के लिए काफी अलग हैं। कृपया सलाह दें।
public interface IFruit{
public string TakeBite();
}
public Apple : IFruit{
public string TakeBite(){
return "tasty bite of apple";
}
}
public void EatFruit(Collection<IFruit> fruits){
foreach(var fruit in fruits){
Console.WriteLine(fruit.TakeBite());
}
}
public void EatApples(Collection<Apple> apples){
this.EatFruit(apples);
}
धन्यवाद। यह संकलित करता है।अब मेरे यूनिट परीक्षणों को अपडेट करने के लिए। – YouGotCSharpInMyJava