none
WCF 传递 DataTable 派生类的问题 RRS feed

  • 问题

  • WCF服务中试过直接以DataTable做为返回值,没有问题

    但是以DataTable的派生类做为返回值时,服务就会报错,错误信息为:“方法“WcfService1.TestTable.GetSchema()”必须返回具有有效 ID 的架构。”

    TestTable继承于DataTable,为什么DataTable好用而派生类不好用呢?而且MSDN上有说明“支持DataSet、DataTable及其派生类型”。请各位指教!

    //服务接口定义
    [OperationContract]
    TestTable GetTable();
    
    //服务接口实现
    public TestTable GetTable()
    {
      TestTable dt = new TestTable();
      dt.TableName = "aaa";
      dt.Columns.Add("a");
      dt.Rows.Add(new string[1] { "1" });
      return dt;
    }
    
    //自定义的派生类
    public class TestTable : DataTable
    {
      public string Key { get; set; }
    }
    
    2011年4月14日 8:49

答案

全部回复