मैं एक सेवा अनुबंध को लागू करने की कोशिश कर रहा हूं जिसमें एक सामान्य इंटरफेस लेता है, और जेनेरिक इंटरफ़ेस को एक इंटरफ़ेस पैरामीटर दिया जाता है। मैं ServiceKnownType साथ सेवा इंटरफ़ेस सजाया गया है, मैं नियमित रूप से KnownType साथ सेवा कार्यान्वयन सजाया है, और मैं नियमित रूप से KnownType साथ datacontract कार्यान्वयन सजाया हैडब्ल्यूसीएफ: क्या सामान्य जेनेरिक इंटरफेस का क्रमिकरण संभव है?
[ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(ICallbacks))]
[ServiceKnownType(typeof(Batch<object>))]
[ServiceKnownType(typeof(Command))]
public interface IActions
{
[OperationContract]
IResponse TakeAction(IBatch<ICommand> commands);
}
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Reentrant)]
[KnownType(typeof(Batch<object>))]
[KnownType(typeof(Command))]
internal class Actions : IActions
{
}
[DataContract]
[KnownType(typeof(Command))]
public class Batch<T> : IBatch<T>
{
}
रिकॉर्ड के लिए, मैं बैच वहाँ है, क्योंकि ऐसा लगता है कि आप केवल एक सामान्य प्रकार के लिए एक ज्ञात टाइप व्यक्त कर सकते हैं - ऐसा लगता है कि यह बैचऑफनी टाइप को उत्सर्जित करता है, लेकिन मुझे यकीन नहीं है कि इसे कैसे संभाला जाए।
अपवाद रहा है हो रही है "ज्ञात प्रकारों की सूची को स्थिर नहीं जाना जाता है किसी भी प्रकार जोड़ें -। उदाहरण के लिए, KnownTypeAttribute विशेषता का उपयोग करके या उन्हें DataContractSerializer के लिए पारित ज्ञात प्रकारों की सूची में शामिल करके"
क्या कुछ स्पष्ट है कि मैं गलत कर रहा हूं? इंटरफेस के जेनेरिक इंटरफेस सिर्फ समर्थित नहीं हैं? रिकॉर्ड के लिए मैं इस परियोजना के लिए सी # 2.0 और .NET 3.0 पर हूं।
हाँ, मैंने उस मंच में संपादित किया है जिसका उपयोग मैं कर रहा हूं जब मैंने सी # 4.0 में कॉन्वर्सिस के बारे में सोचा था। ओह, अपग्रेड करने के लिए। – bwerks