.NET tipo di base non può essere serializzato da WCF

Sto scrivendo un servizio WCF e desidera esporre alcune personalizzato elementi di configurazione (ad es. Personalizzato ConfigurationSection e ConnectionStringSettings) in modo che io possa modificare la configurazione del servizio.

Uno dei miei configurazione personalizzata elementi eredita da System.Configuration.ConfigurationElementCollection. Quando provo ad avviare il mio servizio WCF ottengo il seguente messaggio di errore…

Tipo ‘System.Di configurazione.ConfigurationElementCollection’ non può essere serializzato. Ricordati di segnare con il DataContractAttribute attributo, di marcatura e di tutti i suoi membri si desidera serializzato con il DataMemberAttribute attributo.

C’è un modo per implementare il DataContract di questo Tipo? Io ho la mia classe ereditata contrassegnato con l’attributo [DataContract].

OriginaleL’autore vradenburg | 2008-10-30

2 Replies
  1. 4

    Colpire solo oggi di questo argomento. Era confusa, perché il problema è venuto lo spostamento di un progetto da macchina a macchina. Questo articolo sembra rilevante:

    http://blogs.msdn.com/youssefm/archive/2009/08/10/serializing-plain-old-clr-objects-poco-types-with-datacontractserializer.aspx

    Riassumere in caso di collegamento di marciume, il problema sembra emergere in fase di runtime 3.5 e andare via in runtime 3.5 SP1.

    Ho avuto la stessa. Hai bisogno di 3.5 SP1 per auto serializzazione di POCO i tipi.

    OriginaleL’autore quillbreaker

  2. 1

    Ok, alla fine ho dovuto ri-architetto la mia soluzione. Ho trovato il SerializableConfigurationSection più vantaggiosa. In modelli e pratiche EnterpriseLibrary. Quindi, piuttosto che cercare di passare il mio Sezioni di Configurazione Personalizzate tramite WCF, di eseguire la seralization/deserializzazione manualmente e passare le sezioni di configurazione tramite WCF come una stringa.

    OriginaleL’autore vradenburg

Lascia un commento