【问题标题】:Not the right <type>?不是正确的<type>?
【发布时间】:2009-03-12 04:46:25
【问题描述】:

我很困惑。我有一个 Silverlight 项目,目前正在运行并显示我的模拟模型中的服务器列表(我遵循 MVVM 模式)。

接口代码如下:

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;
}

您可以看到 CompletedEventArgs 将结果作为 IEnumerable 返回。

我遇到的问题是定义&lt;LicenseServer&gt; 的方式是我可以用假数据存根它或从真实数据填充结果(ala ado.net 数据服务)。

我创建了一个本地类 LicenseServer,但服务总是返回不同类型的 LicenseServer。

我收到一个错误:

convert 无法转换类型的对象 'DataServiceOrderedQuery[LicenseMon.LMonServiceReference.License_Server]' 输入 'System.Data.Services.Client.DataServiceQuery`1[LicenseMon.Model.LicenseServer]

我从服务参考中读取为 LicenseServer 的内容无法转换为我在模型类中定义的 LicenseServer

为什么我会遇到麻烦?我不应该能够独立开发我的课程并能够在实时数据库和我内部生成的数据之间切换吗?我是不是走错了路?

任何代码示例、解释、链接等都会很有帮助

【问题讨论】:

    标签: c# silverlight mvvm wcf-data-services


    【解决方案1】:

    通常,在使用 Web 资源(SOAP、WCF 或 ADO.NET 数据服务)时,会生成一个单独的客户端代理类。这将具有类似的布局,但不会自动转换为您的本地类型。一些系统支持类型重用(WCF 等),但不是全部。

    您可以向分部类添加转换或接口;但一般来说,你应该把它当作一个单独的类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      • 2020-02-18
      相关资源
      最近更新 更多