Je ne peux pas faire fonctionner ce scénario. Voici le Pattern WCF DataContract avec un tableau DataMember abstrait
[DataContract]
/*abstract*/ class BaseT
{ ... }
[DataContract]
class ChildT : BaseT
{ ... }
[DataContract]
class MessageContents
{
[DataMember]
public BaseT[] XX; // Array of BaseT objects. I need WCF to somehow figure out that they're actually ChildT.
}
// ...receive a webHttp request of type MessageContents...
// cast to use MessageContents.XX as a ChildT[] instead of a BaseT[]
ConcreteClass[] QQ = (ConcreteClass[])request.xx;
J'ai essayé pratiquement tout annoter avec KnownType ou KnownServiceType en vain.
Si je fais un résumé BaseT, j'obtiens une erreur de désérialisation 'ne peut pas instance de classe abstraite'. Si je fais du béton BaseT, je n'obtiens pas d'erreur de désérialisation. Au lieu de cela, quand je vais le lancer sur ChildT, je suis "incapable de lancer l'objet de type 'BaseT []' pour taper 'ChildT []'".
Dieu J'aime ce site. Génial, merci beaucoup. –