Pergunta

Estou confuso. Eu tenho um projeto do Silverlight que está sendo executado e exibe uma lista de servidores de meu modelo zombado (estou seguindo o padrão MVVM).

A interface é codificado como segue:

public class GetServersCompletedEventArgs : EventArgs 
{
    public Exception Error {get; set;}
    public IEnumerable<LicenseServer> Results {get; private set;}

    public GetServersCompletedEventArgs(Exception error, IEnumerable<LicenseServer> results)
    {
        this.Error = error;
        this.Results = results;
    }
}

public delegate void GetServersCompletedEvent(GetServersCompletedEventArgs e);

public interface IDataService
{
    void GetServers();

    event GetServersCompletedEvent GetServersCompleted;
}

Como você pode ver as CompletedEventArgs retornar os resultados como um IEnumerable.

O problema que estou tendo é definir <LicenseServer> de tal maneira a que eu posso stub-lo com dados falsos ou preencher os resultados a partir de dados reais (serviços ala ADO.NET Data).

Eu criei um LicenseServer classe local, mas o serviço sempre retorna um tipo diferente de LicenseServer.

Eu recebo um erro:

converter Impossível objeto elenco de tipo 'DataServiceOrderedQuery [LicenseMon.LMonServiceReference.License_Server]' digitar 'System.Data.Services.Client.DataServiceQuery`1 [LicenseMon.Model.LicenseServer]

O que eu lido como LicenseServer do serviço de referência não pode ser convertido para o LicenseServer eu defini na minha classe modelo

Por que estou tendo problemas? Eu não deveria ser capaz de desenvolver minhas aulas de forma independente e ser capaz de alternar entre um banco de dados ao vivo e meus dados gerados internamente? Am I abordar este o caminho errado?

Qualquer amostras de código, explicações, links etc seria mais útil

Foi útil?

Solução

Muitas vezes, ao consumir um recurso da Web (SOAP, WCF ou ADO.NET Data Services), um separado classe de proxy do cliente é gerado. Isto terá layout similar, mas não tem nenhuma conversão automática para o seu tipo de local. Algum suporte sistemas tipo re-uso (WCF etc), mas não todos.

Você pode adicionar uma conversão ou uma interface para a classe parcial; mas, em geral, você deve tratar isso como um tipo separado.

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