मेरे पास निम्न है:डब्ल्यूसीएफ: इंटरफेस, जेनरिक और सर्विसकनाउन टाइप
[ServiceContract]
[ServiceKnownType(typeof(ActionParameters))]
[ServiceKnownType(typeof(SportProgram))]
[ServiceKnownType(typeof(ActionResult<SportProgram>))]
public interface ISportProgramBl
{
[OperationContract]
IActionResult<ISportProgram> Get(IActionParameters parameters);
}
जब मैं गेट विधि चलाता हूं तो मुझे निम्न त्रुटि मिलती है:
There was an error while trying to serialize parameter http://tempuri.org/:GetResult. The InnerException message was 'Type 'PPS.Core.DomainModel.Support.Action.ActionResult`1[ [PPS.Core.DomainModel.SportProgram.ISportProgram, PPS.Core.DomainModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' with data contract name 'ActionResultOfanyType: http://schemas.datacontract.org/2004/07/PPS.Core.DomainModel.Support.Action' is not expected. Add any types not known statically to the list of known types - for example, by using the KnownTypeAttribute attribute or by adding them to the list of known types passed to DataContractSerializer.'. Please see InnerException for more details.
इस त्रुटि से मैं देख सकता हूं कि यह ActionResult को हल कर सकता है लेकिन यह ISportProgram को हल नहीं कर सकता भले ही मेरे पास serviceKnownType (टाइपऑफ (एक्शन रिसेट < SportProgram>)) मेरे सेवा इंटरफ़ेस पर है ...
नोट यह संदर्भ स्टब है जो उत्पन्न होता है इस तरह दिखता है, इसलिए मैं देख सकता हूं कि ज्ञात प्रकार हैं सही ढंग से लाया गया:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName="SportProgramStb.ISportProgramBl")]
public interface ISportProgramBl {
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISportProgramBl/Get", ReplyAction="http://tempuri.org/ISportProgramBl/GetResponse")]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(PPS.Core.DomainModel.SportProgram.SportProgram))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(PPS.Core.DomainModel.Support.Action.ActionParameters))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(PPS.Core.DomainModel.Support.Action.ActionResult<PPS.Core.DomainModel.SportProgram.SportProgram>))]
object Get(object parameters);
}
यह गलत क्यों हो रहा है ???? ध्यान दें कि यह डब्लूसीएफ सेवा के माध्यम से सही तरीके से हो रहा है ... लेकिन जब परिणाम लौटाया जाता है तो यह अपवाद फेंकता है।
आखिरकार ActionResult इस तरह दिखता है:
public interface IActionResult<T>
{
T Result { get; set; }
}
चीयर्स एंथनी
'एक्शन रिसेट' प्रकार ''Serializer' अपेक्षा 'ServiceKnownType' प्रकार से उपलब्ध 'ActionResult ' प्रकार से अलग है! –
Lightman