Usando .NET 2.0 biblioteca de classe do Silverlight, WCF serviço público propriedades permanecem sionados

StackOverflow https://stackoverflow.com/questions/1396576

  •  22-09-2019
  •  | 
  •  

Pergunta

Aqui está um pouco sutil o problema que eu estou lidando com, e agradecemos qualquer ajuda.

Nós temos o nosso projeto no modo de produção, construído com .NET 2.0.Recentemente, desenvolvemos um aplicativo do Silverlight externo para o 2.0 solução, e que está "falando" com um serviço WCF.Este serviço consome DLLs nós cópia da nossa 2.0 solução de publicar pastas, em ordem a funcionalidade de acesso a nossa solução original.

O serviço WCF está expondo vários métodos e objetos provenientes de nossa 2.0 solução.Obviamente, ele usa [DataContract]s e [DataMember]s internamente, e aqueles que não estão disponíveis na nossa solução original (pois é .NET 2.0, e neste ponto a atualização para 3.5 não é uma opção).Felizmente, o WCF é capaz de tratar os nossos serializable objetos como se eles foram definidos como contratos, mas por algum motivo estranho apenas as variáveis de membro (mesmo se definido como privado!) estão a ser serializado;propriedades, mesmo configuráveis e o público nunca são serializados.

Nosso objeto de classes que precisamos exposta [Serializable ()]) definidos.Eu olhei ao redor e não conseguia encontrar uma boa solução ou explicação para isso.Ele provavelmente tem a ver com como .NET 3.0/3.5 está "vendo" o meu 2.0 objetos (presume [DataMember] apenas em variáveis e nunca em propriedades).

A minha pergunta é, principalmente, como expor propriedades públicas só, e nunca variáveis privadas?

Agradecemos antecipadamente por qualquer visão sobre isso.

Itamar.

Foi útil?

Solução

A razão para este permanece desconhecida.Temos evitado este problema derivando do exposto objeto (que residem na compilado DLLs estamos usando o projeto do WCF) e, em seguida, re-criando as propriedades e funções de ajuda de que precisamos.Podemos também adicionar novas propriedades ou variáveis de membro, onde necessário.Em seguida, vamos usar esse novo objeto internamente (isto exige, por vezes, ter um especializados construtor de fazer algumas cópias ou adaptações).Não é o ideal, mas de trabalho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top